Ответ 1
function insertDecimal(num) {
return (num / 100).toFixed(2);
}
У меня есть это число как целое число 439980
и я хотел бы разместить десятичное место в 2-х местах справа. сделать это 4399.80
количество символов может меняться в любое время, поэтому мне всегда нужно, чтобы оно было равно 2 десятичным разрядам справа.
как бы я это сделал?
спасибо
function insertDecimal(num) {
return (num / 100).toFixed(2);
}
Просто добавив, что toFixed() вернет строковое значение, поэтому, если вам нужно целое число, для этого потребуется еще один фильтр. Вы можете просто обернуть возвращаемое значение из функции nnnnnn с помощью Number(), чтобы получить целое число назад:
function insertDecimal(num) {
return Number((num / 100).toFixed(2));
}
insertDecimal(99552) //995.52
insertDecimal("501") //5.01
Единственная проблема здесь в том, что JS удалит трейлинг-0, поэтому 439980 вернет 4399.8, а не 4399.80, как вы могли бы надеяться:
insertDecimal(500); //5
Если вы просто печатаете результаты, то оригинальная версия nnnnnn отлично работает!
Функция JavaScript Number может привести к очень неожиданным возвращаемым значениям для определенных входов. Вы можете отказаться от вызова номера и принудительно привязать значение строки к целому числу с помощью унарных операторов
return +(num / 100).toFixed(2);
или умножения на 1, например.
return (num / 100).toFixed(2) * 1;
TIL: Ядровая математическая система JavaScript вид странный