JavaScript将浮点数无条件转换为整数
作者:互联网
我编写了一个函数,该函数的行为取决于其参数的数字类型.整数或浮点数.
使用问题How do I check that a number is float or integer?中的一些代码,很容易检测是否为float,但是我偶然发现javascript将1.0强制转换为1的情况,如果您使用该数字调用函数的话.
例:
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(即Opera和safari)都给出了相同的结果:
1 number 1
1.0 number 1 "wrong"
1.1 number 1.1
我知道javascript只知道类型号,但是强制转换似乎太过分了.我想到的唯一解决方案是使用字符串值(例如“ 1.0”)调用函数,检测点并使用parseFloat或parseInt.
有什么建议吗?
解决方法:
您已经承认JavaScript仅具有单个Number类型.因此,1等于1.0.
如果出于显示目的需要此功能,则应使用toFixed.
1..toFixed(1); // "1.0"
标签:parsefloat,floating-point,javascript 来源: https://codeday.me/bug/20191101/1980379.html