Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

formatfloat   Найти похожие ветки 

 
Konus   (2007-05-08 07:35) [0]

edit5.text:=FormatFloat("0.00",strtofloat(edit5.text)); //если введено число формата 4,5 , вывести 4,50

эта процедура возвращает текст вида 4,56 (да и strtofloat принимает только через запятую)
а мне надо через точку, т.е. 4.56

как можно реализовать?


 
ЮЮ ©   (2007-05-08 08:01) [1]

Разделитель дробной части определяется настройками компьютера.

> а мне надо через точку

Ну так настрой компьютер как надо.


 
Konus   (2007-05-08 08:11) [2]

дело в том, что программой будут пользоваться на других компьютерах
не будут же все настраивать как надо

может, как-то обрабатывать строку
например, ввожу 4.45, сначала точка заменяется на запятую, потом strtofloat, приводим в нужный формат, заменяем запятую на точку и выводим как надо

один только вопрос, как можно это обработать?


 
MBo ©   (2007-05-08 08:14) [3]

см. DecimalSeparator


 
ЮЮ ©   (2007-05-08 08:21) [4]

> дело в том, что программой будут пользоваться на других
> компьютерах


И если апользователь на том компьютере считает, что разделителем должна быть запятая, то и должна быть запятая. А если точка - то точка.
P.S. Перед strtofloat замени в строке . и , на DecimalSeparator


 
Konus   (2007-05-08 08:46) [5]

дело в том, что данные должны сохраняться в определенном формате в файл
через точку


 
ЮЮ ©   (2007-05-08 09:18) [6]

> дело в том, что данные должны сохраняться в определенном
> формате в файл

В этом случае вообще проще воспользоваться процедурой Str.
А для чтения - Val или Read


 
icWasya ©   (2007-05-08 10:30) [7]

>В этом случае вообще проще воспользоваться процедурой Str.
>А для чтения - Val или Read
Они тоже используют DecimalSeparator


 
ЮЮ ©   (2007-05-08 11:08) [8]

> Они тоже используют DecimalSeparator

Неужели?

procedure TForm1.Button1Click(Sender: TObject);
var
 f: Double;
 s: string;
begin
 f := 3.1415;
 DecimalSeparator := ".";
 Str(f:10:2, s);
 Memo1.Lines.Add(DecimalSeparator + " " + s);
 DecimalSeparator := ",";
 Str(f:10:2, s);
 Memo1.Lines.Add(DecimalSeparator + " " + s);
end;


На выходе:

.       3.14
,       3.14



Страницы: 1 вся ветка

Текущий архив: 2007.05.27;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.066 c
3-1173785473
kulkse
2007-03-13 14:31
2007.05.27
DBGrid MultiSelect


15-1177586869
homm
2007-04-26 15:27
2007.05.27
«Архитектура вразрез» © В. Кладов


5-1153910245
DevilDevil
2006-07-26 14:37
2007.05.27
Убрать свойство из Object Inspector


15-1177873061
FesRV
2007-04-29 22:57
2007.05.27
DelphiX


2-1178726622
Strate
2007-05-09 20:03
2007.05.27
Не могу понять почему это работает :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский