Javascript parseFloat或toFixed不表示小数
构建一个用toFixed和parseFloat表示数字的计算器时,它似乎忽略了十进制输入,当你正确输入“.”或“.0”或“.00”等时,它会跳过,直到你写出一个不是0的数字。有什么帮助吗Javascript parseFloat或toFixed不表示小数,javascript,Javascript,构建一个用toFixed和parseFloat表示数字的计算器时,它似乎忽略了十进制输入,当你正确输入“.”或“.0”或“.00”等时,它会跳过,直到你写出一个不是0的数字。有什么帮助吗 var ghost = Number(parseFloat(reactant).toFixed(13)); var ghost2 = Number(parseFloat(reactant2).toFixed(13)); var ghostspec = Number(parseFloat(reactantspec
var ghost = Number(parseFloat(reactant).toFixed(13));
var ghost2 = Number(parseFloat(reactant2).toFixed(13));
var ghostspec = Number(parseFloat(reactantspec).toFixed(13));
if (vi === 0){
document.getElementById('result').innerHTML = ghost;
} else if (vi >= 1 && tx === 0) {
document.getElementById('result').innerHTML = ghost2;
} else if (vi >= 1 && tx > 0) {
document.getElementById('result').innerHTML = ghostspec;
}
}
**this is how you type decimals**
function click10() {
if (vi === 0) {
click10a();
} else if (vi !== 0 && tx === 0) {
click10b();
} else if (vi !== 0 && tx !== 0) {
if (di3 === 0) {
virs++;
reactantspec = reactantspec + "" + ".";
di3++;
}
}
}
function click10a() {
if (di1 === 0) {
reactant = reactant + "" + ".";
vir++;
di1++;
}
}
function click10b() {
if (di2 === 0) {
reactant2 = reactant2 + "" + ".";
vir2++;
vi++;
di2++;
}
}
“问题”在于,Number
函数会截断由parseFloat(…).toFixed(13)
生成的格式化数字(字符串)的小数。看一看:
设wn=Number(parseFloat(“1”).toFixed(13))+“”+
数字(parseFloat(“1”).toFixed(13))+“”+
数字(parseFloat(“.1”).toFixed(13))+“”+
数字(parseFloat(“1.1”).toFixed(13))+“”+
数字(解析浮点(“0”).toFixed(13))+“”+
数字(parseFloat(“0”).toFixed(13))+“”+
数字(parseFloat(“.0”).toFixed(13))+“”+
数字(0.0)至固定值(13);
设wtn=parseFloat(“1”).toFixed(13)+“”+
parseFloat(“1”).toFixed(13)+“”+
parseFloat(“.1”).toFixed(13)+“”+
parseFloat(“1.1”).toFixed(13)+“”+
parseFloat(“0”).toFixed(13)+“”+
parseFloat(“0”).toFixed(13)+“”+
parseFloat(“.0”).toFixed(13)+“”+
解析浮点数(“0.0”)。toFixed(13);
document.getElementById(“结果”).innerHTML=
“带编号(…):“+wn+”“+
“无编号(…):”+wtn代码>
为什么要使用数字(…)?parseFloat已经生成了一个数字。这能修复它吗?我明白了,我应该把它作为一个字符串吗?@Benn是的,因为一个有很多跟踪零的数字作为一个数字是没有意义的toFixed()
是一个数字格式函数。但是toFixed的目的是修复浮点舍入错误,因为它似乎在13位小数或更少的情况下工作,所以我需要将它固定到13位小数。