Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

FloatToStrF


Belkin ©   (03.07.17 20:28

Как работает эта функция???

Хочу просто вывести вещ.число с двумя знаками после запятой:
FloatToStrF(X, ffGeneral, 4, 2)

Перебрал разные варианты с Precision и Digits - получается какая-то длинная  ерундень с E.

Help me please!


FloatToStrF   (03.07.17 20:54[1]

Посмотри здесь, все детали разобраны
http://www.delphibasics.ru/FloatToStrF.php
и здесь
http://www.studfiles.ru/preview/2582135/


Dimka Maslov ©   (03.07.17 22:24[2]

Напиши свою функцию. С этим и этими.
Вот алгоритм
1. Умножить вещественное число на 100 (сто).
2. Взять его целую часть и преобразовать в целое число.
3. Целое число преобразовать в строку.
4. В третью с конца позицию вставить десятичный разделитель.
5. ????????
6. PROFIT!!!


Германн ©   (04.07.17 01:32[3]

2 Belkin ©   (03.07.17 20:28)

> Хочу просто вывести вещ.число с двумя знаками после запятой:

Тогда используй формат ffFixed, а не ffGeneral.


dmk ©   (04.07.17 01:36[4]

Мою возьми: http://www.delphimaster.ru/cgi-bin/forum.pl?id=1492345608&n=3
Она нормально все выводит.


Belkin ©   (04.07.17 08:19[5]

Получается, я не могу при помощи стандартной FloatToStrF просто вывести 6,931878485 как 6,93? или 15,80395171818 как 15,80 ??


dmk ©   (04.07.17 09:17[6]

Почему это?
Result := FloatToStrF(Value, ffNumber, 18, 2);


Belkin ©   (04.07.17 10:08[7]

dmk, спасибо за ответ! Почему 18?  Почему ffNumber, а не ffFixed?


Strelkin   (04.07.17 11:50[8]

Потому что хелп - для лохОв


Rouse_ ©   (04.07.17 16:16[9]

Работает через разложение в BCD строку, остальное банально нюансы


manaka ©   (04.07.17 19:38[10]

Удалено модератором


manaka ©   (04.07.17 19:39[11]


> Хочу просто вывести вещ.число с двумя знаками после запятой:


куда вывести? для дальнейших расчетов или просто на экран?


manaka ©   (04.07.17 19:43[12]


> Dimka Maslov ©   (03.07.17 22:24) [2]
> Напиши свою функцию. С этим и этими.
> Вот алгоритм
> 1. Умножить вещественное число на 100 (сто).
> 2. Взять его целую часть и преобразовать в целое число.
> 3. Целое число преобразовать в строку.
> 4. В третью с конца позицию вставить десятичный разделитель.
>
> 5. ????????
> 6. PROFIT!!!


1. Преобразуем число в строку
2. Находим вхождение "." в строке (пусть будет N)
3. Результат - исходная строка длиной N+2

На целый пункт короче !!!! И быстрее (наверное, не проверяла, лень)


manaka ©   (04.07.17 19:46[13]


> manaka ©   (04.07.17 19:39) [11]
> куда вывести? для дальнейших расчетов или просто на экран?


С округлением или без?


> Strelkin   (04.07.17 11:50) [8]
> Потому что хелп - для лохОв


+1


Dimka Maslov ©   (05.07.17 11:23[14]


> На целый пункт короче !!!


Мы же не ищем лёгких путей.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо