Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2015, 12:07   #1
mrtoxas
Пользователь
 
Аватар для mrtoxas
 
Регистрация: 15.07.2015
Сообщений: 14
По умолчанию Буквенные сокращения больших чисел.

Приветствую! Подскажите, можно ли сделать малой кровью преобразования больших чисел, например:
21045000 = 21m45k?
mrtoxas вне форума Ответить с цитированием
Старый 28.07.2015, 12:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что такое "m" и "k"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.07.2015, 12:58   #3
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

а зачем, если не секрет?

спрашиваю потому что

1234567890 = 1г234м567к890
f.hump вне форума Ответить с цитированием
Старый 28.07.2015, 13:09   #4
mrtoxas
Пользователь
 
Аватар для mrtoxas
 
Регистрация: 15.07.2015
Сообщений: 14
По умолчанию

Stilet, k - тысячи, m - миллионы.

f.hump, озадачился, скорее для собственного развития. А так, то есть счетчик на форме, который шурует очень быстро и очень долго. И чтобы каждую миллисекунду не перерисовывать label, подумал, что лучше сократить числа на американский манер + восприятие числа будет легче, чем знаки считать.
mrtoxas вне форума Ответить с цитированием
Старый 28.07.2015, 13:24   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

mrtoxas, ну так очевидно же, через mod получайте остатки от деления на нужное число и его выводит с буквенным обозначением.
и выводите их.
если по-индусски, "в лоб" , то можно так:
Код:
var s : string;
begin
....

   // пусть число в переменной N
   s := '';
   if (N mod 1000000000)>0 then s := IntToStr(N mod 1000000000)+'b';
   s := s + IntToStr(N mod 1000000)+'m'+IntToStr(N mod 1000)+'k';
 
   Label1.Caption := s
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.07.2015, 13:24   #6
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

лучше пробелов поставь

1234567890 = 1 234 567 890
f.hump вне форума Ответить с цитированием
Старый 28.07.2015, 13:30   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ах вон че...
Код:
function Foo(i:integer): Variant; var k:integer;
begin
 Result:='';
 k:=i div 1000000;if k<>0 then Result:=IntToStr(k)+'m '; i:=i mod 1000000;
 k:=i div 100000;if k<>0 then Result:=Result+IntToStr(k)+'k '; i:=i mod 100000;
 Result:=Result+IntToStr(i);

end;
Достаточно малой кровью. Можно и через цикл и красивее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.07.2015, 14:11   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
21m45k
Это в каком формате так нада? Пробелы ставят обычно. Для денег еще пишут, чтобы от нулей не рябило.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 28.07.2015, 14:24   #9
mrtoxas
Пользователь
 
Аватар для mrtoxas
 
Регистрация: 15.07.2015
Сообщений: 14
По умолчанию

Serge_Bliznykov, Stilet, Спасибо! Пошел курить mod.
mrtoxas вне форума Ответить с цитированием
Старый 28.07.2015, 14:48   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

..........
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано (random) 50 чисел. Вычислить среднее арифметическое чисел больших полусуммы первых двух. Olzhakesh Общие вопросы по Java, Java SE, Kotlin 5 24.12.2014 19:45
Дана непустая последовательность целых чисел. Найти: Сумму чисел, больших числа x и количество всех чётных чисел maksim97maksim Паскаль, Turbo Pascal, PascalABC.NET 1 09.04.2014 13:59
Сложение больших чисел Plazma Общие вопросы C/C++ 0 27.11.2010 17:11
сложение больших чисел SacReD_89 Общие вопросы C/C++ 21 25.04.2010 16:42
С# Сложение больших чисел SL1CK Помощь студентам 4 23.11.2009 21:07