powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Форматирование целого числа
8 сообщений из 8, страница 1 из 1
Форматирование целого числа
    #39560322
m52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

Хочу получить вывод целого числа с разрядами, например, есть число 10230198323, нужно его вывести в виде "10 230 198 323" согласно языковым настройкам. Для англоязычной винды должно выглядеть "10,230,198,323"

Написал так:
Код: pascal
1.
  st:=Format('%n',[10230198323.00]);


почти работает, но выводит:
"10 230 198 323,00" - для русской винды
"10,230,198,323.00" - для англ. винды

Чтобы убрать ",00" на конце, пробовал так:
Код: pascal
1.
Format('%n',[10230198323]);


но при выполнении выдает ошибку аргументов.

Что посоветуете, как убрать ",00" на конце?
...
Рейтинг: 0 / 0
Форматирование целого числа
    #39560350
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
%.0n
...
Рейтинг: 0 / 0
Форматирование целого числа
    #39560371
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m52,

Как-то так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
Function NumberStr(ANumber:extended):string;
var OldDS,OldTS:Char;
begin
 OldDS:=DecimalSeparator;
 OldTS:=ThousandSeparator;
 DecimalSeparator:='.'; ThousandSeparator:=',';
 Result:=Format('%n',[ANumber]);
 DecimalSeparator:=OldDS; ThousandSeparator:=OldTS;
end;



А потом убить дробную часть в строке.
...
Рейтинг: 0 / 0
Форматирование целого числа
    #39560394
VDSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m52,

FormatFloat(',0', intVal);
...
Рейтинг: 0 / 0
Форматирование целого числа
    #39560576
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterm52,

Как-то так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
Function NumberStr(ANumber:extended):string;
var OldDS,OldTS:Char;
begin
 OldDS:=DecimalSeparator;
 OldTS:=ThousandSeparator;
 DecimalSeparator:='.'; ThousandSeparator:=',';
 Result:=Format('%n',[ANumber]);
 DecimalSeparator:=OldDS; ThousandSeparator:=OldTS;
end;



А потом убить дробную часть в строке.
Просто кошмар... мало того что перректальная тонзиллэктомия, так еще и меняет глобальные переменные, что является источником веселых багов и за что в команде можно огрести обширную ЧМТ.
...
Рейтинг: 0 / 0
Форматирование целого числа
    #39560579
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Василий №2,

fixed: что является источником веселых багов в многопоточной программе
...
Рейтинг: 0 / 0
Форматирование целого числа
    #39560592
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №2,

да и в однопоточной нужно как минимум оборачивать в блок try .. finally .. end
...
Рейтинг: 0 / 0
Форматирование целого числа
    #39560595
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №2,

у функции формат есть потокобезопасный вариант с третьим параметром
Код: pascal
1.
2.
function Format(const Format: string; const Args: array of const;
  const FormatSettings: TFormatSettings): string;
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Форматирование целого числа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]