Главная страница
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.013 c
9-1171785599
Sonio
2007-02-18 10:59
2008.10.05
Будущий геймдев!


3-1207566350
oskar1985
2008-04-07 15:05
2008.10.05
Локальная база


2-1219716327
Abcdef123
2008-08-26 06:05
2008.10.05
Как заполнить список TDBComboBox.Items данными из DataSet?


15-1218711018
Vlad Oshin
2008-08-14 14:50
2008.10.05
Об именах. Вот зачем так делать, да еще в пример ставить.


1-1199531227
ras122
2008-01-05 14:07
2008.10.05
помогите с работой с мышкой, пожалуйста