Comments 33
В последствии Dekker показал, что если используются числа с плавающей запятой, использующие округление к ближайшему нечетному числу
Вероятно, имелось ввиду округление до ближайшего четного, этот способ еще называют банковским округлением, из-за того что этим способом принято округлять в банках :)
В банках для счета денег всё же используют никак не числа с плавающей запятой.
Если сумма будет 1.17 то комиссия и по математическим и банковским правилам составит 0.04 (точное значение 0.0351)
Как-то потребовались расчеты с высокой точностью в астрономии. У меня был всего лишь C# с его biginteger и десяток часов свободного времени. Где-то скачал реализацию класса bigrational в виде дробей, например 1/3. После пары-тройки выражений, действительно, если не округлять, время вычисления вырастает в разы. Тригонометрия считалась за десятки секунд с точностью до сотого знака после запятой. Плюнул, написал свой класс на основе biginteger с фиксированной запятой, реализовал базовые математические и тригонометрические методы. В общем-то, расчеты до 1000 знаков после запятой занимали терпимое время. Такая высокая точность не требовалась, просто её можно было менять практически на ходу. Потом, конечно, узнал, что это все велосипед. П.С. Считал гравитационные взаимодействия.
Почему происходит ошибка при парсинге 16 знака числа Пи — не понял из текста? Куда именно смотреть JS-сообществу, чтобы найти причину?
github.com/munrocket/double.js/blob/master/src/double.js
Или в экпериментальной, пробовал там подключать big.js для разделения числа
github.com/munrocket/double.js/blob/quadtriple/test/test.js
habr.com/company/pvs-studio/blog/312890
Сегодня, в погоне за «эффективностью» от них отказались… вот только почему-то программы после этого стали тормознее… парадокс…
Да, только пятипалым не так интересен бинарный результат, почему то они хотят увидеть десятичные дроби. Такое преобразование стоит довольно много дочности из-за того, что десять не степень двойки.
Ну вообще да, я ляпнул немного мимо кассы. Сорре, бывает. Впрочем, есть у двоичной системы есть действительно фатальный недостаток: многие десятичные дроби, вполне естесственные для пятипалых, непредставимы в двоичной системе исчисления с плавующей точкой. Поэтому все финансы в фиксированной. Что творится в военке говорить не буду, премии лишат, но намекну, что кровью плачу часто.
Что же касается случаев из науки и техники — точные десятичные дроби бывают только в школе. В жизни они измерены с некоторой точностью, и не факт, что двоичное представление не ближе к реальному значению.
Каков Ваш доход через год в виде рациональной дроби?
Да легко: 100000 * (7/100) = 7000.
И нужна ли Вам действительно такая точность?
Какая «такая»?
Можете разъяснить суть возражения? Почему не пользоваться для расчётов удобным для расчётов представлением?
Аргумент принял. Действительно, с рублями не всё так просто.
Самые быстрые числа с плавающей запятой на диком западе