Javascript 为什么2个parseFloat变量的总和给我的十进制数不正确
如果我有这个小功能:Javascript 为什么2个parseFloat变量的总和给我的十进制数不正确,javascript,function,sum,Javascript,Function,Sum,如果我有这个小功能: <script type="text/javascript"> function printFloat(){ var myFloatNumber1 = document.getElementById('floatNumber1'); var myFloatNumber2 = document.getElementById('floatNumber2'); alert(parseFloat(myFloatNumber1.va
<script type="text/javascript">
function printFloat(){
var myFloatNumber1 = document.getElementById('floatNumber1');
var myFloatNumber2 = document.getElementById('floatNumber2');
alert(parseFloat(myFloatNumber1.value) + parseFloat(myFloatNumber2.value))
}
</script>
<input type="text" id="floatNumber1"></input>
<input type="text" id="floatNumber2"></input>
<input type="button" onclick="printFloat()"/>
函数printFloat(){
var myFloatNumber1=document.getElementById('floatNumber1');
var myFloatNumber2=document.getElementById('floatNumber2');
警报(parseFloat(myFloatNumber1.value)+parseFloat(myFloatNumber2.value))
}
在字段1中输入:221.58
在字段2中输入:2497.74
我希望输入字段中的2个数字的总和是2个数字:2719.32
但结果是一个错误的数字…:2719.3199999997
一轮就可以了,但我不明白为什么代码会在这个数字上这么做。。。
对于其他数字组合,总和是正确的…请参阅:
parseFloat()
转换时,会发生舍入错误
为什么像0.1+0.4这样的其他计算可以正常工作?
在这种情况下,结果(0.5)可以是
准确地表示为
浮点数,它是
中可能存在舍入错误
输入数字以相互抵消
-但这不一定是可靠的(例如,当这两个数字
存储在不同大小的浮动容器中
点表示首先
舍入误差可能无法抵消每个误差
其他)
在其他情况下,如0.1+0.3,则
结果实际上不是0.4,但是
非常接近,因此0.4是最短的
更接近结果的数字
而不是任何其他浮点值
号码。然后显示多种语言
该数字而不是转换
实际结果返回到最接近的值
小数
简单地做以下事情
function printFloat(){
var myFloatNumber1 = document.getElementById('floatNumber1');
var myFloatNumber2 = document.getElementById('floatNumber2');
var total=parseFloat(myFloatNumber1.value) + parseFloat(myFloatNumber2.value);
alert(total.toFixed(2));
}