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