Форум: "Основная";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];
ВнизFloatToStr и TFormatSettings - проблема с ThousandSeparator Найти похожие ветки
← →
Undertaker-wwf (2007-02-22 19:16) [0]Хочу преобразовать число с плавающей точкой в строку, и чтобы "разделитель тысяч" был, например, "." (точка).
Делаю это так:
procedure TMyCalcForm.SetIndicatorValue(Value: Double);
var
StringValue: string;
FormatSettings: TFormatSettings;
begin
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, FormatSettings);
FormatSettings.DecimalSeparator := ",";
FormatSettings.ThousandSeparator := ".";
StringValue := FloatToStr(Value, FormatSettings);
IndicatorMemo.Text := StringValue;
end;
Если вызватьSetIndicatorValue(12109810.05);
то IndicatorMemo.Text будет содержать "12109810,05", т. е. не то что я ожидаю. В чём дело? Смотрел код функции FloatToStr - в ней стоит вызов фунции FloatToText, которая написана на ассемблере. В ассемблере я почти не разбираюсь и не могу отследить логику работы FloatToText.
← →
Johnmen © (2007-02-22 22:53) [1]Не парь себе мОзги...
procedure TMyCalcForm.SetIndicatorValue(Value: Double);
var
SaveDecimalSeparator, SaveThousandSeparator : char;
begin;
SaveDecimalSeparator:=DecimalSeparator;
SaveThousandSeparator:=ThousandSeparator;
DecimalSeparator:=",";
ThousandSeparator:=".";
IndicatorMemo.Text:=FormatFloat("#,##0.00",Value);
DecimalSeparator:=SaveDecimalSeparator;
ThousandSeparator:=SaveThousandSeparator;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.109 c