我想在JavaScript中将浮点数转换为整数。实际上,我想知道如何进行两种标准转换:通过截断和舍入。而且高效,而不是通过转换为字符串和解析。


当前回答

如果您使用angularjs,那么简单的解决方案如下HTML模板绑定

{{val |编号:0}}

它会将val转换为整数

通过链接docs.angularjs.org/api/ng/filter/number

其他回答

双位not运算符可用于截断浮点数。您提到的其他操作可通过Math.floor、Math.ceil和Math.round获得。

> ~~2.5
2
> ~~(-1.4)
-1

更多细节由詹姆斯·帕多尔西提供。

您可以使用parseInt方法进行无舍入。由于0x(十六进制)和0(八进制)前缀选项,请小心用户输入。

var intValue = parseInt(floatValue, 10);

编辑:作为警告(来自注释部分),请注意某些数值将被转换为指数形式,如1e21,这将导致“1”的十进制表示不正确

对于截断:

var intvalue = Math.floor(value);

对于圆形:

var intvalue = Math.round(value);

比特移位0,等于除以1

// >> or >>>
2.0 >> 0; // 2
2.0 >>> 0; // 2

如果您使用angularjs,那么简单的解决方案如下HTML模板绑定

{{val |编号:0}}

它会将val转换为整数

通过链接docs.angularjs.org/api/ng/filter/number