我遇到了这个奇怪的异常,创建了一个简单的 javaScript 演示,我将用它来教我 11 岁的孩子编码的基础知识。我认为在使用 javaScript parse float javaScript 函数之前,我可能没有对输入字符串进行清理。该程序适用于其他浮点小数,即。2.5 + 3 = 5.5。然而在这个例子中,1.445 + 2 = 3.4450000000000003。纯粹出于好奇,我想知道这里发生了什么。因此,没有任何进一步的延迟,这是 JavaScript 代码:
var funct = null;
function clarifyOperation(x)
{
if(x=="add")
{
document.getElementById("operation").innerHTML=" + ";
funct="add";
}
else if(x=="subtract")
{
document.getElementById("operation").innerHTML=" - ";
funct="subtract";
}
else if(x=="multiply")
{
document.getElementById("operation").innerHTML=" × ";
funct="multiply";
}
else if(x=="divide")
{
document.getElementById("operation").innerHTML=" ÷ ";
funct="divide";
}
}
function solve()
{
var x=document.getElementById("inputX").value;
var y=document.getElementById("inputY").value;
var z;
if(funct=="add")
{
z=parseFloat(x)+parseFloat(y);
document.getElementById("result").value=z;
}
else if(funct=="subtract")
{
z=parseFloat(x)-parseFloat(y);
document.getElementById("result").value=z;
}
else if(funct=="multiply")
{
z=parseFloat(x)*parseFloat(y);
document.getElementById("result").value=z;
}
else if(funct=="divide")
{
z=parseFloat(x)/parseFloat(y);
document.getElementById("result").value=z;
}
}
这是HTML代码:
<input type="text" value="" id="inputX"/>
<span id="operation"> </span>
<input id="inputY" type="text" value="" />
<span> = </span>
<input type="text" value="" id="result" /><br />
<input type="radio" name="operation" value="add" onchange="clarifyOperation(this.value)" />
<span>+</span><br />
<input type="radio" name="operation" value="subtract" onchange="clarifyOperation(this.value)" />
<span>-</span><br />
<input type="radio" name="operation" value="multiply" onchange="clarifyOperation(this.value)" />
<span>×</span><br />
<input type="radio" name="operation" value="divide" onchange="clarifyOperation(this.value)" />
<span>÷</span><br />
<input type="button" value="calculate" onclick="solve()" />
<hr />
提醒社区:保持您的评论有用。