Как вы все знаете, поскольку это одна из наиболее часто задаваемых тем в SO, у меня возникают проблемы с ошибками округления (на самом деле это не ошибки, мне хорошо известно). Вместо того, чтобы объяснять свою точку зрения, я приведу пример того, какие возможные числа у меня есть и какие входные данные я хочу получить:
Скажем
var a = 15 * 1e-9;
alert(a)
выходы
1.5000000000000002e-8
Я хочу получить вместо этого 1.5e-8
, но я не могу просто умножить на 10e8, округлить и разделить на 10e8, потому что я не знаю, будет ли это e-8 или e-45 или что-то еще.
Итак, в основном я хочу получить часть 1.5000002
, применить toFixed(3)
и вернуть экспоненту.
Я мог бы преобразовать в строку и проанализировать, но это просто не кажется правильным ...
Любая идея ?
(Заранее прошу прощения, если вы считаете, что это один из многих дубликатов, но я не смог найти похожий вопрос, только связанные)
Гаэль