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

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

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

Восстановить пароль

Купить рекламу на форуме - 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