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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2011, 00:19   #1
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию Числа и запятые

Я вас уже наверное замучил своими глупыми вопросами.

Казалось бы просто, но почему-то не поддается.
Есть переменная, назовем ее number, в ней находятся цифры.
Возможно ли в одну строчку сделать разделитель.
Тоесть если в переменной больше 4 цифр, после третей с конца ставим запятую.
Пример 43,555 или 5,777 или 443
Помогите пожалуйста.
celovec вне форума Ответить с цитированием
Старый 27.10.2011, 00:30   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

А number - это строка или число? Кто писать будет?
или так
Код:
procedure TfrmMain.Button1Click(Sender: TObject);
 var number: Double;
begin
number:= 12345;

if number>9999 then number:= number/1000;
ShowMessage(FloatToStr(number));
end;
или так
Код:
procedure TfrmMain.RzBitBtn1Click(Sender: TObject);
 var number: string;
begin
number:= '12345';

if Length(number) > 3 then Insert(',',number,length(number)-2);
ShowMessage(number);
end;
Вообще, вариантов много

Последний раз редактировалось _SERGEYX_; 27.10.2011 в 00:33.
_SERGEYX_ вне форума Ответить с цитированием
Старый 27.10.2011, 01:20   #3
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

number это integer.
Разобрался, спасибо.
celovec вне форума Ответить с цитированием
Старый 28.10.2011, 20:52   #4
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Прошу прощенья, а возможно ли как-то еще упростить данное решение (без if)?
celovec вне форума Ответить с цитированием
Старый 28.10.2011, 22:16   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Именно if убрать? А чем тебе if не нравится?
Напиши функцию, типа этой
Код:
function BlaBlaBla(i: Integer): string;
begin
  case i of
    0 .. 9999:
      Result := IntToStr(i);
  else
    Result := FormatFloat('0.000', i / 1000);
  end;
end;

procedure TfrmMain.RzBitBtn1Click(Sender: TObject);
begin
  ShowMessage(BlaBlaBla(123456789));
end;
Кажется, есть какая-то строка форматирования, наподобие %10.3f, чтобы сразу выдать нужный формат, но я не помню, а справочника под рукой нет...
_SERGEYX_ вне форума Ответить с цитированием
Старый 28.10.2011, 22:25   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
  ThousandSeparator:=',';
  s:=FormatFloat('#,##0',45555);
  s:=FormatFloat('#,##0',555);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.10.2011, 23:53   #7
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Спасибо Аватар, то что нужно!
_SERGEYX_, вам тоже спасибо.
celovec вне форума Ответить с цитированием
Старый 29.10.2011, 12:37   #8
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Расскажите пожалуйста подробней о ThousandSeparator:=',';

FormatFloat я использую в трех функциях. Насколько я понимаю ThousandSeparator необходимо писать в каждой из них?

Потому что вчера пробовал ThousandSeparator вставить в FormCreate, он срабатывал. А сегодня запустил созданы Project.exe уже на другом компьютере и вместо запятой я вижу пробел. Тоесть ThousandSeparator не срабатывает. Почему так происходит?
celovec вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена точек на запятые НеВа6464 Microsoft Office Excel 25 07.04.2014 13:13
Ещё раз про замену точек на запятые НеВа6464 Microsoft Office Excel 1 11.05.2011 12:32
Убрать запятые из файла. Dasharnb777 Microsoft Office Excel 6 08.07.2010 21:23
составить прогу, заменить все пробелы на запятые tim777777 Помощь студентам 7 02.03.2009 05:52
Убрать запятые и точки 3акup Microsoft Office Excel 7 18.02.2009 18:47