2013-10-04 47 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