我需要一些关于浮点数的帮助......拜托!
这就是问题,我的代码如下:
<script>
function add()
{
document.getElementById("answer").value = parseFloat(document.getElementById("num1").value) + parseFloat(document.getElementById("num2").value);
}
function subtract()
{
document.getElementById("answer").value = parseFloat(document.getElementById("num1").value) - parseFloat(document.getElementById("num2").value);
}
function multiply()
{
document.getElementById("answer").value = parseFloat(document.getElementById("num1").value) * parseFloat(document.getElementById("num2").value);
}
function divide()
{
document.getElementById("answer").value = parseFloat(document.getElementById("num1").value) / parseFloat(document.getElementById("num2").value);
}
</script>
对不起它有点长!然后html非常简单:
<h1>Calculator</h1>
<h3>Enter a value in each box below, then click an operation</h3>
<form id="calculatorForm">
<input id="num1" value="0" type="text">
<input id="num2" value="0" type="text">
<br>
<input value="+" onclick="add();" type="button">
<input value="-" onclick="subtract();" type="button">
<input value="*" onclick="multiply();" type="button">
<input value="/" onclick="divide();" type="button">
<br>
<input id="answer" value="0" type="text">
</form>
你几乎可以猜到我的问题是什么:当我乘以,除或减两个浮点数时,我最终得到无限小数。
我需要一个快速的解决方案,将这些数字四舍五入到两个小数点,我需要它稍后工作,因为我之后需要实施华氏温度到Celsisus的操作。
我不在乎这是怎么做的,但必须是Javascript。对不起,如果之前已经回答过,但我很快就需要回答!谢谢!
编辑:非常感谢那些回答我问题的乐于助人的人。谢谢!
答案 0 :(得分:4)
使用.toFixed()
:
var num = 45.34343434343;
num = num.toFixed(2); // "45.34"
答案 1 :(得分:3)
在这里看到有一个函数Number.toFixed(num)
可以做到这一点。
在W3Schools JS Numbers查看更多信息和其他选项。
出现这个问题是因为在Javascript中,每个Number
都是64位浮点数,没有Integer
这样的东西。
答案 2 :(得分:3)
在Javascript中使用.toFixed()
功能。
document.getElementById("answer").value = (parseFloat(document.getElementById("num1").value) - parseFloat(document.getElementById("num2").value)).toFixed(2);
或者更容易看到的版本:
var x = 3.14159265358979323;
alert(x.toFixed(2)); // 3.14
关于它如何运作的非常好的描述on MDN。
答案 3 :(得分:3)
.toFixed()
很有用,但是在Javascript(和许多其他语言)中正确舍入数字需要更多工作。
“打破”有不同的舍入规则,你需要知道你需要什么,因为它们在不同的场景中使用。 看here。