我有:
onclick="document.getElementById('field1').value =
Math.round((parseFloat(document.getElementById('field2').value,2)*100))/100 +
Math.round((parseFloat(document.getElementById('field3').value,2)*100))/100;"
大多数数字都可以达到2个小数点,这就是我需要的。
但是,有一个像
这样的例子onclick="document.getElementById('field1').value =
Math.round((parseFloat(document.getElementById('21.29').value,2)*100))/100 +
Math.round((parseFloat(document.getElementById('54.70').value,2)*100))/100;"
字段1正在返回75.99000000000001
如何一致地修剪为75.99
?
答案 0 :(得分:43)
var num = 5 / 6;
var display = num.toFixed(2)
num outputs: 0.8333333333333334
display outputs: "0.83"
答案 1 :(得分:6)
使用方法toFixed(2)
将其固定在小数点后两位:
(Math.round((parseFloat(document.getElementById('21.29').value,2)*100))/100 +
Math.round((parseFloat(document.getElementById('54.70').value,2)*100))/100).toFixed(2);
答案 2 :(得分:4)
这个怎么样:
parseFloat(document.getElementById('21.29').toFixed(2));
toFixed方法应该很好地处理四舍五入。
答案 3 :(得分:0)
我遇到了类似的问题-我不想舍入该值,而是将其修整为2位小数
通过编写此函数并在需要的地方修整最多2位小数,我得到了完美的解决方案
function upto2Decimal(num) {
if (num > 0)
return Math.floor(num * 100) / 100;
else
return Math.ceil(num * 100) / 100;
}
如果您致电
upto2Decimal(2.3699) or upto2Decimal(-2.3699)
// returns 2.36 or -2.36
使用浏览器的JS控制台检查此解决方案
答案 4 :(得分:0)
您可以使用:
The number generated is 1
The number generated is 4
The number generated is 20
The number generated is 19
The number generated is 10
5
function myFunction()
{
var num = "-54.987656";
var roundedValue = roundMethod(num,5);
document.getElementById("demo").innerHTML = roundedValue;
}
function roundMethod(numberVal, roundLimit) // This method will not add any additional 0, if decimal places are less than the round limit
{
var isDecimal = numberVal.indexOf(".") != -1;
if(isDecimal)
{
if(numberVal.split(".")[1].length > roundLimit)
{
return parseFloat(numberVal).toFixed(roundLimit).toString();
}else
{
return numberVal;
}
}else
{
return numberVal;
}
}