编程语言
首页 > 编程语言> > JavaScript将浮点数无条件转换为整数

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