Javascript无限制地将浮点数转换为整数

时间:2012-08-03 15:38:17

标签: javascript floating-point parsefloat

我写了一个函数,根据它的参数的数字类型,它的行为会有所不同。整数或浮动。

使用此问题How do I check that a number is float or integer?中的一些代码很容易检测浮动与否,但后来我偶然发现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只知道类型number,但强制转换似乎过分了。我提出的唯一解决方案是使用'1.0'等字符串值调用函数,检测点并使用parseFloatparseInt

有关于此的任何建议吗?

2 个答案:

答案 0 :(得分:4)

您已经承认JavaScript只有一种Number类型。因此,11.0相同。

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

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

答案 1 :(得分:0)

number%1===0 

如果那个条件是true,那么它是整数,否则它是浮点数