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

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

double для десятичной системы счисления


Mystic ©   (27.02.19 13:23[20]

(1) Fixed point, decimal, currency
(2) Просто то, что ты хочешь, любой программист может легко реализовать на основании целочисленного типа, например, храним сумму не в долларах, а в центах и т. п. В принципе, готовых реализаций over 9000+ Для научных численных вычислений фиксированная точка абсолютно не годиться, потому что часто будем выходить за пределы её точности, например, если брать градиентный спуск, то шаг может быть очень маленьким, например 1e-6, а значение целевой функции очень большим 1e+6. А вся точность десятичного представления разбивается о квадратные корни, логарифмы, экспоненты и т. п.

Хотя фон Нейман в своё время утверждал, что программистам достаточно фиксированной точки, а уже любой вменяемый программист легко сможет на её основе реализовать представление в виде мантиссу/экспоненты наиболее эффективное для данного алгоритма. Ну и если брать классику типа Уилкинсон Дж.Х., Райнш С. Справочник алгоритмов на языке Алгол. Линейная алгебра, то там часто можно встретить в коде как раз ручную работу с мантиссой/экспонентой.


KSergey ©   (27.02.19 13:26[21]

Fixed point не то.
Хочется плавающую точку.


иосифович ©   (27.02.19 13:27[22]

храним сумму не в долларах, а в центах

но тут внезапно появляются проценты.


Mystic ©   (27.02.19 13:52[23]


> Хочется плавающую точку.


Зачем? Как только происходит потеря точности, сразу становится неважным, как у тебя представлены числа. А в финансовых приложениях вряд-ли будет большо́й диапазон значений, 64 бита даст тебе примерно 18 порядков, для доллара получаем триллион это 1e+12, следовательно у нас ещё будет 6 знаков после точки. Также нет проблем в использовании 128 бит (ещё 18 порядков).

Если брать Ethereum VM, там все суммы представлены 256-битными числами, 1 ETH это 1e+18 wei (минимальная единица). Такой точности всем более чем достаточно.


ВладОшин ©   (27.02.19 17:38[24]

Хочешь повторить тот случай, когда работник банка подсунул софтинку которая все эти хвостики переводила на его счет ? )


virex(home) ©   (27.02.19 18:57[25]

> KSergey ©   (27.02.19 13:26) [21]
>
> Fixed point не то.
> Хочется плавающую точку.
см. аналог BigDecimal в java

хоть сто тыщь после запятой


KSergey ©   (28.02.19 09:09[26]

> ВладОшин ©   (27.02.19 17:38) [24]
> Хочешь повторить тот случай, когда работник банка подсунул
> софтинку которая все эти хвостики переводила на его счет ? )

Это-то как раз просто, вытекает из самой природы всей этой проблемы, и это как раз так у меня и работает.
А вот как сделать, чтобы не переводила - вот над чем бьюсь. И чета без особого успеха.


dmk ©   (28.02.19 14:46[27]

>А вот как сделать, чтобы не переводила - вот над чем бьюсь. И чета без особого успеха.
Я округлял одну часть значения в нужную сторону, а вторую получал вычитанием от округленного. Вполне рабочий вариант. За 10 лет налоговая ничего не вернула на пересчет.


han_malign ©   (28.02.19 17:51[28]


> Я округлял одну часть значения в нужную сторону, а вторую получал вычитанием от округленного.
>> ... чтобы не переводила

https://habr.com/ru/post/423469/


Inovet ©   (01.03.19 05:18[29]

> [5] Styx ©   (27.02.19 11:08)
> И проблема не в использовании степеней двойки в компьютере,
> а в использовании степеней десятки в быту.

Это точно подмечено - бэд дизайн. Правильно надо было сделать по 1 пальцу на каждой руке, как компромисное решение можно было сделать по 4 или даже по 8 тоже неплохо. Но решения с двумя руками всё-таки не универсальны, например, они неудобны в архитектуре DEC процессоров, где надо на одну руку делать 4 пальца а на другую 3, что усложняет модель и добавляет лишние сущности и ассиметрию. Самое универсальное решение 1 рука, тогда пространство вариаций с количеством пальцев раширяются от 1 и до неких разумных величин, поределяемых типовими архитектурами процессоров.


Styx ©   (01.03.19 09:42[30]

:)
Я имел в виду что-то типа этого:
https://ru.wikipedia.org/wiki/Закон_Бенфорда


Inovet ©   (01.03.19 17:02[31]

> [30] Styx ©   (01.03.19 09:42)
> Я имел в виду что-то типа этого:
> https://ru.wikipedia.org/wiki/Закон_Бенфорда

НуТыПонял.


Inovet ©   (01.03.19 17:04[32]

> [31] Inovet ©   (01.03.19 17:02)

Да. смайл подразумевался.:)


Страницы: 1 2 версия для печати

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

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







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


Наверх

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