Ответ 1
.toFixed(x)
возвращает строку. Просто проанализируйте его как поплавок снова:
return parseFloat(val.toFixed(2));
У меня есть несколько значений:
var one = 1.0000
var two = 1.1000
var three = 1.1200
var four = 1.1230
и функция:
function tofixed(val)
{
return val.toFixed(2);
}
этот возврат:
1.00
1.10
1.12
1.12
Мне нужен максимальный размер после точки - 2, но только если числа после for!= 0. Поэтому я бы хотел получить:
1
1.1
1.12
1.12
Как я могу это сделать?
.toFixed(x)
возвращает строку. Просто проанализируйте его как поплавок снова:
return parseFloat(val.toFixed(2));
Предполагая, что вы хотите вывести строки
function myFixed(x, d) {
if (!d) return x.toFixed(d); // don't go wrong if no decimal
return x.toFixed(d).replace(/\.?0+$/, '');
}
myFixed(1.0000, 2); // "1"
myFixed(1.1000, 2); // "1.1"
myFixed(1.1200, 2); // "1.12"
myFixed(1.1230, 2); // "1.12"
"Правильный" способ сделать это:
return Math.round(num*100)/100;
Если вы хотите усечь его до двух знаков после запятой (т.е. 1.238 переходит к 1.23 вместо 1.24), используйте floor
вместо round
.