Javascript,奇怪的浮点数无止境小数?

Javascript,奇怪的浮点数无止境小数?,javascript,floating-point,Javascript,Floating Point,我需要一些关于浮点数的帮助…请 事情是这样的,我有如下代码: <script> function add() { document.getElementById("answer").value = parseFloat(document.getElementById("num1").value) + parseFloat(document.getElementById("num2").value); } function subtr

我需要一些关于浮点数的帮助…请

事情是这样的,我有如下代码:

<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>

函数add()
{
document.getElementById(“answer”).value=parseFloat(document.getElementById(“num1”).value)+parseFloat(document.getElementById(“num2”).value);
}
函数减法()
{
document.getElementById(“answer”).value=parseFloat(document.getElementById(“num1”).value)-parseFloat(document.getElementById(“num2”).value);
}
函数乘法()
{
document.getElementById(“answer”).value=parseFloat(document.getElementById(“num1”).value)*parseFloat(document.getElementById(“num2”).value);
}
函数除法()
{
document.getElementById(“answer”).value=parseFloat(document.getElementById(“num1”).value)/parseFloat(document.getElementById(“num2”).value);
}
对不起,有点长!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>
计算器
在下面的每个框中输入一个值,然后单击一个操作


你几乎可以猜到我的问题是什么:当我乘、除或减两个浮点数时,我得到的是一个无限小数位

我需要一个快速的解决方案,将这些数字四舍五入到两个小数点,我需要它在以后工作,因为之后我需要实现从华氏到塞尔西斯的操作

我不在乎这是如何实现的,但它必须是Javascript。对不起,如果这个问题以前已经回答过,但我真的需要一个答案很快!谢谢

编辑:非常感谢回答我问题的热心人。谢谢大家!

使用
.toFixed()


请看这里有一个函数
Number.toFixed(num)
就是这样做的

请参阅上的更多信息和其他选项

出现这个问题的原因是,在Javascript中,每个
数字都是64位浮点,不存在
整数
之类的东西,在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
非常好地描述了它的工作原理。

.toFixed()
很有用,但要注意,在Javascript(和许多其他语言)中正确地舍入数字需要更多的工作

“平局突破”有不同的舍入规则,您需要知道您需要的规则是什么,因为它们在不同的场景中使用。
听着。

你可能不想在开始提问时说你懒得读其他可能回答你的问题。你没有计划并不构成我的紧急情况。阅读该死的答案。我会让你知道@Chris,我得到了这个密码。我必须和它一起工作。谢谢你的支持。这不是一个巨魔。这个问题已经被问到了,而且这个问题甚至不应该是。用户未知:你认为人们可以分享他的感受吗?刚进入网站时,也许你应该更努力地遵守网站的规则/态度。这个网站的精神不是“这是我的作业!完成它!现在!!!”他只是想指出这一点。(读者请注意:编辑之前的原始帖子与现在的帖子有很大不同。它最初的大意是“我不能因为阅读任何其他帖子而生气,所以请为我做这件事”)有人帮忙!非常感谢=丹娜是另一个乐于助人的人!谢谢I’我很高兴看到你们不都像@Chris。谢谢你们,Max,有一些额外的名声,因为你们是一个乐于助人的人。:-)
var x = 3.14159265358979323;
alert(x.toFixed(2));   // 3.14