Я хотел отобразить число до 2 десятичных знаков.
Я думал, что мог бы использовать toPrecision(2)
в JavaScript.
Однако, если номер есть 0.05
, я получу 0.0500
. Я бы предпочел, чтобы это осталось прежним.
Смотрите это на JSbin .
Каков наилучший способ сделать это?
Я могу подумать о кодировании нескольких решений, но я представляю (надеюсь) что-то вроде этого встроенное?
Вы можете сделать это с помощью
toFixed
функции, но в IE она глючит . Если вам нужно надежное решение, посмотрите мой ответ здесь .источник
float_num.toFixed(2);
работает нормально)Попробуй
toFixed
вместоtoPrecision
.источник
Не знаю, как я добрался до этого вопроса, но даже если прошло много лет с тех пор, как мне его задали, я хотел бы добавить быстрый и простой метод, которому я следую, и он никогда не подводил меня:
источник
parseFloat()
там? Его следует использовать только в том случае, если число исходит из строки.function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }
Ответ по этой ссылке: http://www.jacklmoore.com/notes/rounding-in-javascript/
источник
number.parseFloat(2)
работает, но возвращает строку.Если вы хотите сохранить его как тип номера, вы можете использовать:
Math.round(number * 100) / 100
источник
Вы можете попробовать смешать
Number()
иtoFixed()
.Преобразуйте целевое число в красивую строку с цифрами X, а затем преобразуйте форматированную строку в число.
Number( (myVar).toFixed(2) )
Смотрите пример ниже:
источник
а вот и синтаксис
Аргумент digits является необязательным и по умолчанию равен 0. И тип возвращаемого значения - строка, а не число. Но вы можете преобразовать его в число, используя
Он также может генерировать исключения, такие как
TypeError
,RangeError
Вот полная детализация и совместимость в браузере.
источник
источник
Я сделал эту функцию. Работает нормально, но возвращает строку.
источник