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

Вниз

работа с 20-значными числами   Найти похожие ветки 

 
aidyn   (2008-08-29 12:46) [0]

Возникла необходимость проводить операции с 20-значными(а то и больше) числами. столкнулся с проблемой. что даже самый большой тип данных в дельфи не позволяет с ними оперировать. Точнее позволяет, но отсекает несколько последних цифр и приводит к такому виду 1,23423534535345Е21.
конечно же это уже другая цифра. как мне быть?


 
Vlad Oshin ©   (2008-08-29 12:53) [1]

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


 
Slym ©   (2008-08-29 12:54) [2]

aidyn   (29.08.08 12:46)
если целочисленная математика то FGInt,HugeInt или родной TBCD (не советую)


 
aidyn   (2008-08-29 13:02) [3]


> если целочисленная математика то FGInt,HugeInt или родной
> TBCD (не советую)



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


можно поподробнее пожалуйста


 
Anatoly Podgoretsky ©   (2008-08-29 13:03) [4]

> aidyn  (29.08.2008 12:46:00)  [0]

Нужна внешняя поддержка больших чисел, хватит поддержки 128 бит


 
Юрий Зотов ©   (2008-08-29 13:10) [5]

> aidyn   (29.08.08 12:46)  

> самый большой тип данных в дельфи не позволяет с ними оперировать.
> Точнее позволяет, но отсекает несколько последних цифр и приводит к
> такому виду 1,23423534535345Е21.

В приведенном Вами примере числа содержится 15 значащих цифр, что соответствует типу Double. Но в Delphi это НЕ самый большой тип чисел с плавающей точкой. Самый большой - это Extended и он дает 19-20 значащих цифр. Возможно, этого будет достаточно.

Честно говоря, затрудняюсь придумать пример, в котором действительно требовалась бы точность в 20 знаков и более. Как правило, числа с плавающей точкой используются в тех или иных численных методах, где погрешность САМОГО метода ПРИНЦИПИАЛЬНО не позволяет получить 20 и более точных знаков. Это означает, что младшие разряды в любом случае будут содержать "мусор", хранить который совершенно незачем.


 
Anatoly Podgoretsky ©   (2008-08-29 13:38) [6]

А у него даже не 20, а 21 знак


 
ZiZi   (2008-08-29 17:16) [7]

Старый добрый массив и собственные функции умножения/деления, вычитания/сложения. Низкий уровень программирования - это выход.

> Честно говоря, затрудняюсь придумать пример, в котором действительно
> требовалась бы точность в 20 знаков и более. Как правило,
>  числа с плавающей точкой используются в тех или иных численных
> методах, где погрешность САМОГО метода ПРИНЦИПИАЛЬНО не
> позволяет получить 20 и более точных знаков. Это означает,
>  что младшие разряды в любом случае будут содержать "мусор",
>  хранить который совершенно незачем.

--В принципе поддерживаю, но только если сильно надо - флаг в руки и вперёд на низкий уровень.


 
antonn ©   (2008-08-29 20:41) [8]


> aidyn   (29.08.08 12:46)

http://kladovka.net.ru/index.cgi?pid=list&rid=53


> ZiZi   (29.08.08 17:16) [7]
> на низкий уровень

понравилось словосочетание, красиво звучит, да? %)


 
Amoeba ©   (2008-08-29 21:44) [9]

Господа, а куда пропал наш супер-глубокоуважаемый АВТОР в больших буквах? Где каскад благодарностей?



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

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

Наверх




Память: 0.49 MB
Время: 0.011 c
4-1197378338
Игорь00
2007-12-11 16:05
2008.10.05
Static без мерцания


15-1218627135
programmist87
2008-08-13 15:32
2008.10.05
Как скрыть процесс?


2-1219663002
Greebanyi 2bus
2008-08-25 15:16
2008.10.05
Два процесса одновременно


11-1194440952
=BuckLr=
2007-11-07 16:09
2008.10.05
Портированный DCPCrypt


15-1218629279
Вася111
2008-08-13 16:07
2008.10.05
Защита от "пиратирования" проги