Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.74 c
2-1178889302
Ezorcist
2007-05-11 17:15
2007.05.27
Можно отобразить в label текс шрифтом не в системе?


2-1178524785
Konus
2007-05-07 11:59
2007.05.27
работа с TEdit, формат числа 1.11


2-1178780591
Kostafey
2007-05-10 11:03
2007.05.27
Снова про With


15-1178009480
Nic
2007-05-01 12:51
2007.05.27
Глючит Canvas в Win Vista


15-1177663610
CCili
2007-04-27 12:46
2007.05.27
Как проверить данные 2 аксесовских таблиц?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский