我有一行代码可以将数字四舍五入到两位小数。但是,我得到的数字像这样:10.8、2.4等。这不是我认为的两位小数,请问如何改进以下代码?
Math.round(price*Math.pow(10,2))/Math.pow(10,2);
我希望得到像10.80、2.40这样的数字。使用jQuery也可以。
我有一行代码可以将数字四舍五入到两位小数。但是,我得到的数字像这样:10.8、2.4等。这不是我认为的两位小数,请问如何改进以下代码?
Math.round(price*Math.pow(10,2))/Math.pow(10,2);
我希望得到像10.80、2.40这样的数字。使用jQuery也可以。
我发现了一个非常简单的方法,解决了这个问题,并且可以被使用或者改编:
td[row].innerHTML = price.toPrecision(price.toFixed(decimals).length
百分之百有效!!!试试看
<html>
<head>
<script>
function replacePonto(){
var input = document.getElementById('qtd');
var ponto = input.value.split('.').length;
var slash = input.value.split('-').length;
if (ponto > 2)
input.value=input.value.substr(0,(input.value.length)-1);
if(slash > 2)
input.value=input.value.substr(0,(input.value.length)-1);
input.value=input.value.replace(/[^0-9.-]/,'');
if (ponto ==2)
input.value=input.value.substr(0,(input.value.indexOf('.')+3));
if(input.value == '.')
input.value = "";
}
</script>
</head>
<body>
<input type="text" id="qtd" maxlength="10" style="width:140px" onkeyup="return replacePonto()">
</body>
</html>
number.toFixed(x)
方法将其转换为具有所需零数量的字符串。例如,使用跨浏览器方法将1.34
舍入为1.3
,然后添加1个零并使用1.3.toFixed(2)
转换为字符串(以获取"1.30"
)。 - Edward