Как работает точность Float чисел в Javascript? - PullRequest
1 голос
/ 30 марта 2019

Привет, ребята. Я работаю над javascript файлом о астрономических расчетах , поэтому мне нужно больше точности.У меня есть много операций для каждой строки, и я хочу, чтобы результат получился более точным (также десяти или двадцати десятичных после запятой).

В JavaScript, если я не объявляю десятичное число (например, используя .ToFixed(n)),сколько позиций после запятой язык учитывает при расчете?

Например:

var a= 1.123456789*3.5; // result 3.9320987615
var b= a/0.321;
var c= b*a;

// c => 48.16635722800571

Будет ли результат? Как использование всех десятичных после запятой для каждой переменной javascript делает приближения?

Почему в других вопросах пользователи предлагают использовать decimal.js или другие библиотеки?

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

Извините за мой английский!

Ответы [ 2 ]

2 голосов
/ 30 марта 2019

Javascript использует двойную точность IEEE-754, что означает, что он вычисляет только числа с точностью до 15 десятичных знаков, больше, чем это обрезается.Если вам нужна большая точность, вы должны использовать decimal.js или другую подобную библиотеку.Другие вопросы рекомендуют decimal.js или другие библиотеки, потому что его легко вставить в программу и обеспечить столько точности, сколько вы хотите.

Причина, по которой он не реализован на компьютере по умолчанию, заключается в том, что онкомпьютеру требуется гораздо больше усилий, чтобы вычислить до 20 цифр над 15 цифрами, потому что компьютер создан для вычисления только до 15 десятичных цифр.Если вы хотите узнать больше об этом, я бы порекомендовал прочитать Произвольную арифметику точности в Википедии.

0 голосов
/ 30 марта 2019

Просто потому, что метод toFixed () преобразует число в строку, сохраняя указанное количество десятичных знаков.Таким образом, возвращаемое значение будет строкой, а не числом.

...