舍入数字到2位小数

时间:2015-11-26 18:34:58

标签: javascript rounding

这是我的第一个JS脚本。这是一个货币计算器,我有一个问题。

在用户插入金额,汇率和货币后,代码会生成新货币的值。但是,它给出了这样的回报

8.100000000000001。

我一直在阅读有关Number.toFixed(x)和Number.toPrecision(x)的内容,但我不知道将它们放在我的代码中,或者即使这是最好的方法。

请有人告诉我,代码如下。

<!doctype html>
<html>

<head>
<meta charset="utf-8">
<title>Currency Converter</title>
<script>
//Gets Values from TextBox
var number1, exchangeRate, result;
function setValues() {
    number1 = Number(document.getElementById("number1").value);
    exchangeRate = Number(document.getElementById("exchange-rate").value);

}

//Calculates Values from TextBox
function calculate() {
    setValues();
    result = number1*exchangeRate;  
    document.getElementById("answer").innerHTML = result;
}

 //Prints the selected currency
function printCurrency() {
var myCurrency = document.getElementById("myCurrency").value;
    document.getElementById("print-currency").innerHTML = myCurrency;
}
</script>

</head>

<body>

<table>
<tr>
    <td>
        Insert Amount <input type="text" id="number1">
    </td>

    <td>
        Exhange Rate <input type="text" id="exchange-rate">
    </td>

    <td>
        Select currency 
        <select id="myCurrency">
            <option value="USD">USD</option>
            <option value="GPB">GBP</option>
            <option value="EUR">EUR</option>
            <option value="VND">VMD</option>
            <option value="KHR">KHR</option>
        </select>
    </td>

    <td>
    <input type="button" onclick="printCurrency(); calculate()" value="Calculate">
    </td>

</tr>

</table>



<p>Your amount is: <span id="print-currency"></span> <span id="answer"</span></p>


</body>
</html>

2 个答案:

答案 0 :(得分:2)

将其应用于您的结果。

document.getElementById("answer").innerHTML = result.toFixed(2);

在JS中,您可以将这些功能应用于任何数字。

var a = 8.100000000000001;
console.log(a.toFixed(2));

答案 1 :(得分:0)

修改函数计算为:

  

function calculate(){

setValues();
result = number1*exchangeRate;  
document.getElementById("answer").innerHTML = result.toFixed(2); 
     

}