Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с FormatFloat()

305
12 мая 2003 года
Kashuk
385 / / 21.02.2003
Мне в одной программе необходимо выводить значения в StringGrid с разным количеством знако после запятой, я вывожу следующим образом:
f=3.09093993
FormatFloat("0.000",f); - Выводит 3 знака после точки.
И вот так приходится всегда выводить, что очень неудобно.
Вопрос такой, можно ли както "глобально" настроить, сколько знаков мне надо выводить при выводе переменных с плавающей точкой?

Вопрос второй.
В Edit'e Ввожу 24.234 - Хочу это перевести в float а оно выдаёт ошибку, просит, что б я разделял не точкой, а запятой, а как зделать так, что б я разделял не запятой а точкой.
460
12 мая 2003 года
Berg
261 / / 27.03.2003
Вопрос второй.
В Edit'e Ввожу 24.234 - Хочу это перевести в float а оно выдаёт ошибку, просит, что б я разделял не точкой, а запятой, а как зделать так, что б я разделял не запятой а точкой. [/QUOTE]

Зависит от regional settings настроек-windows.
Как вариант:
1) можешь изменить их;
2) можно заменить "." на "," программно перед переводом;
3) можно самостоятельно перевести строку->число;
1.6K
12 мая 2003 года
Kadet
101 / / 26.03.2003
Цитата:
Originally posted by Kashuk
Мне в одной программе необходимо выводить значения в StringGrid с разным количеством знако после запятой, я вывожу следующим образом:
f=3.09093993
FormatFloat("0.000",f); - Выводит 3 знака после точки.
И вот так приходится всегда выводить, что очень неудобно.
Вопрос такой, можно ли както "глобально" настроить, сколько знаков мне надо выводить при выводе переменных с плавающей точкой?

Вопрос второй.
В Edit'e Ввожу 24.234 - Хочу это перевести в float а оно выдаёт ошибку, просит, что б я разделял не точкой, а запятой, а как зделать так, что б я разделял не запятой а точкой.



На первый вопрос: Попробуй создать массив char str[40], и функцией sprintf(str,"%f",znachenie) конвертить значение в строку. В таблице выводи текстовые строки.

Второй вопрос:
Создай свой класс проверяющий текст, в теле чтото вроде:
char str[20],*pstr;
int z=0;
pstr=str;
strcpy(pstr,Edit1->Text.c_str());
for(int i=0;i<strlen(pstr);i++)
{
if(*(pstr+i)=='0' || *(pstr+i)=='1' || * (pstr+i)=='2' || *(pstr+i)=='3'
|| *(pstr+i)=='4' ||*(pstr+i)=='5' ||*(pstr+i)=='6' ||*(pstr+i)=='7'
|| *(pstr+i)=='8' || *(pstr+i)=='9')
{
}
else
{
if(*(pstr+i)==',' || *(pstr+i)=='.')
{
*(pstr+i)=',';
z++;
}
else z=100;
}
}
if(z>1)
{
MessageDlg("Неверный формат данных",1,
TMsgDlgButtons() << mbAbort, 0);
}
return z;

Пользуясь функцией передаёшь указатель на строку, возвращаются исправленная строка и z. Если z>1 то в строке ошибки.
Можеш перед переводом просто проверить (если z>1) то строка содержит посторонние символы или много запятых. pstr - указатель на исправленную строку.

305
19 мая 2003 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by Berg
Вопрос второй.
В Edit'e Ввожу 24.234 - Хочу это перевести в float а оно выдаёт ошибку, просит, что б я разделял не точкой, а запятой, а как зделать так, что б я разделял не запятой а точкой.



Зависит от regional settings настроек-windows.
Как вариант:
1) можешь изменить их;
2) можно заменить "." на "," программно перед переводом;
3) можно самостоятельно перевести строку->число; [/QUOTE]

А вот как програмно изменить ети regional settings настроек-windows, И повлияет ли это на другие программы?

362
19 мая 2003 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by Kashuk


Зависит от regional settings настроек-windows.
Как вариант:
1) можешь изменить их;
2) можно заменить "." на "," программно перед переводом;
3) можно самостоятельно перевести строку->число;



А вот как програмно изменить ети regional settings настроек-windows, И повлияет ли это на другие программы? [/QUOTE]

Есть в Билдере глобальная переменная
char DecimalSeparator
она показывает чем отделяются целая и дробная часть. Попробуй менять ее

PS
Там есть еще ThousandSeparator, может пригодится

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог