Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Форматирование Double [D6]


Страницы:   1 2

kull ©   (2002-04-26 10:54:00) 

Такой вопрос:
Делаю Format("%.2f",[11111111111111111111.0]);
На выходе получается 1,11111111111111111E19 ,
а надо: 11111111111111111100,00 ,как сделать?


kull   (2002-04-26 15:27:00) [21]


> посчитал единички- их же 20!

да мне хоть 320, надо на выходе получить строку с числом дополненым нулями 300 раз, точность теряется и ладно.


Игорь Шевченко   (2002-04-26 15:23:00) [22]

День добрый, Kull,

Извиняюсь, ошибся.
С кем не бывает :-)))

На худой конец можно текстовую строку после Format разобрать и представть в требуемом виде.
Кстати, вопрос: А зачем такие мучения нужны (в смысле, что за задача) ?

С уважением,


kull   (2002-04-26 15:22:00) [23]

2MBo

> числа-то в двоичном виде хранятся

А какое дело в каком виде они хранятся, не вижу связи. Что неужели труднее сделать 1*(10^0)?

Оперируем-то мы ими в 10-ом виде в математических операциях.
Например 2*2 = 4, а не 100 ...


MBo   (2002-04-26 15:18:00) [24]

посчитал единички- их же 20!
это число не представить точно. 15-16 цифр для double и 17-18 для extended


MBo   (2002-04-26 15:08:00) [25]

>kull
>что то не похоже на 1E0 ...
числа-то в двоичном виде хранятся
0.5*2^1=1


kull   (2002-04-26 15:08:00) [26]

Я понял как работает FrExp: 0.5*(2^1) = 1
Правда это в моей задаче не очень поможет...


kull   (2002-04-26 14:57:00) [27]


> Игорь Шевченко © (26.04.02 14:51)

Аха... как же.
FrExp(1,M,E);
результат:
M = 0.5
E = 1

что то не похоже на 1E0 ...


Игорь Шевченко   (2002-04-26 14:51:00) [28]

День добрый,

1,11111111111111111E19

Мантисса 1.111111111111111
Экспонента E19

С уважением,


kull   (2002-04-26 14:35:00) [29]

Что то я не втыкаю, как работает FrExp.
Что такое мантисса и экспонента - объясните глупому.


Johnmen   (2002-04-26 13:25:00) [30]

Игорь Шевченко © (26.04.02 13:11) : попробовали....


kull   (2002-04-26 13:13:00) [31]


> Можно попробовать использовать функцию FrExp для выделения
> мантиссы и экспоненты, а дальше форматировать руками, к
> примеру...

Спасибо!
Вот это уже дело, посмотрим...


kull   (2002-04-26 13:12:00) [32]

2Johnmen
А нельзя ли конкретный пример привести к моему числу, а то я сколько не пыжился ничего не получилось.


Игорь Шевченко   (2002-04-26 13:11:00) [33]

День добрый, Johnmen,

Прежде чем советовать, не попробовали ?

для kull ©:

Можно попробовать использовать функцию FrExp для выделения мантиссы и экспоненты, а дальше форматировать руками, к примеру...

С уважением,


Johnmen   (2002-04-26 13:11:00) [34]

пиши свою ф-ию....


kull   (2002-04-26 13:03:00) [35]

Спасибо за совет!
Но мне не нужно представлять большие значения через 64-битные целые, и точность меня не волнует.
Меня интересует как отформатировать Double, чтоб небыло экспоненциального вида пусть это будет 1 и 300 нулей - это не важно.


Johnmen   (2002-04-26 12:58:00) [36]

FormatFloat()


Игорь Шевченко   (2002-04-26 12:55:00) [37]

День добрый,

Прежде чем "хотеть странного" можно почитать про точность представления чисел с плавающей точкой в Delphi, раздел справки Real Types...

Я бы рекомендовал использовать целые 64-битные числа для представления больших точных значений.

С уважением,


kull   (2002-04-26 12:26:00) [38]

Ну чтож никто не знает.
Ну хотя бы какую-нибудь другую функцию.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо