2013-10-04 23 views
1

我有一张我正在处理的收据,它对我来说算数。我需要将结果显示为美元值。Onchange在小数点后添加2位数

我的HTML:

<input type="text" name="copy1" id="copy1" size="4" maxlength="10" onchange="calculate(this.value)"> 
<input type="text" name="copycosts" id="copycosts" size="4" VALUE=""/> 

我的javascript:

<script type="text/javascript"> 
function calculate(){ 
var copy1value = parseFloat(document.getElementById("copy1").value, 10); 
document.getElementById("copycosts").value = copy1value * 0.50; 
} 
</script> 

如何添加2位小数乘法完成后?例如13 * 0.50 = 6.5 - 我想说它是6.50。

在此先感谢。

+0

[parse float with two decimal places]的可能重复(http://stackoverflow.com/questions/4435170/parse-float-with-two-decimal-places) –

回答

3

使用toFixed()(将数字符串转换):

document.getElementById("copycosts").value = (copy1value * 0.50).toFixed(2); 

如果您需要操作在未来这个数字,你需要使用parseFloat()

var numFromCopycosts = parseFloat(document.getElementById('copycosts').textContent); 

参考:

0

您可以使用toFixed:

var val = copy1Value.toFixed(2); 
2

使用下面的代码也回合数:

(Math.round(copy1value * 0.50 * 100)/100).toFixed(2); 

1.345 will be rounded off to 1.35 

新增的jsfiddle:http://jsfiddle.net/FQTqk/297/

+1

为什么你使用'parseFloat()'on一个号码?但用+1来处理'toFixed()'引发的舍入问题。 –

+0

是。也没有'parseFloat'。由于用户正在为元素赋值,因此不需要'parseFloat()' – Rajesh

+0

完美!非常感谢你.....我从这个网站学到了很多=) – karisma