使用Javascript蒙上浮点数为整数无故(Javascript casts floating p

2019-06-26 18:04发布

我写的行为有所依赖于数字类型它的参数的函数。 整数或浮点数。

使用一些代码从这个问题我如何检查一个数字是浮动或整数? 很容易检测是否浮动或没有,但后来我偶然发现的JavaScript投下的情况下1.01无故,如果你使用这个数字调用一个函数。

例:

function dump(a, b) {
 console.log(a, typeof b, b);
}

dump('1', 1);
dump('1.0', 1.0);
dump('1.1', 1.1);

输出浏览器,Firefox,即,Opera和Safari都给出了相同的结果:

1   number 1
1.0 number 1 "wrong"
1.1 number 1.1

我知道的JavaScript只知道类型number而是被迫投似乎去的方式过分。 我想出的唯一办法就是使用类似字符串值调用的函数'1.0' ,检测点和使用parseFloatparseInt

对任何建议?

Answer 1:

你已经承认了JavaScript只有一个Number类型。 这样, 1是相同的1.0

如果你需要这个显示的目的,那么你应该使用toFixed

1..toFixed(1); // "1.0"


Answer 2:

number%1===0 

如果条件为true ,这是整数,否则它是浮动



文章来源: Javascript casts floating point numbers to integers without cause