我编写了一个函数,它的行为根据其参数的数字类型而有所不同。整数或浮点数。
使用这个问题中的一些代码如何检查一个数字是浮点数还是整数?很容易检测是否浮动,但后来我偶然发现了 javascript 强制转换的情况1.0
to 1
如果您使用该号码调用函数,则毫无原因。
Example:
function dump(a, b) {
console.log(a, typeof b, b);
}
dump('1', 1);
dump('1.0', 1.0);
dump('1.1', 1.1);
输出 chrome、firefox、ie、opera 和 safari 都给出了相同的结果:
1 number 1
1.0 number 1 "wrong"
1.1 number 1.1
我知道javascript只知道类型number
但这种强制演员阵容似乎太过分了。我想出的唯一解决方案是使用字符串值调用函数,例如'1.0'
,检测点并使用parseFloat
or parseInt
.
对此有什么建议吗?
您已经承认 JavaScript 只有一个Number
类型。像这样,1
与1.0
.
如果您需要它用于显示目的,那么您应该使用toFixed
.
1..toFixed(1); // "1.0"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)