parseInt(1.164 * 100000) === 116399
Я знаю, что максимальное количество знаков после запятой - 5. Есть ли способ, чтобы удалить все ошибки округления?Преодоление Javascript Проблемы с плавающей точкой
EDIT: Я получаю несколько вниз голосов, так что я хотел бы прояснить этот вопрос немного более
Я знаю, что максимальная десятичная 5, потому что я знаю, что это не возможно для базы данных, чтобы вернуться поплавок с более чем пятью знаками после запятой
В данный момент нет ни одной ссылки. Это поплавок.
Я не хочу использовать библиотеку точности, потому что она слишком тяжелая, чтобы включить библиотеку, чтобы исправить небольшую ошибку для переднего конца.
Мне интересно, использую ли я Math.round, и у меня все еще будут проблемы. Например, ошибка здесь 1.164 становится 1.16399999 (поэтому я могу исправить проблему путем округления), но возможно ли для 1.164 стать 1.6400000001. В этом случае, если округлить, округлить до 116401.
Откуда у вас возникла идея, что максимальное число десятичных знаков составляет 5? 15 намного чаще встречается. Например, в Chrome «1.23456789.14159265358979323846264338327950288419716939937510582097494459230 = 4.376160543713243'. –
Вам нужно использовать parseFloat для получения точности –
Кроме того, это слишком широкий вопрос. Там есть точные математические библиотеки, но, как сформулировано, этот вопрос слишком широк, чтобы получить хороший ответ здесь. –