在 JavaScript 中将 double 转换成 int,无需四舍五入

在 JavaScript 中,我们经常需要处理数字类型。有时候我们需要将一个 double 类型的数字转换为整数类型(int),但是如果直接使用 JavaScript 内置函数 Math.round() 进行转换,则会进行四舍五入,这并不符合我们的要求。那么该怎样进行精确的转换呢?

方法一:使用 Math.trunc()

Math.trunc() 函数用于去除一个数的小数部分,返回整数部分。

----- --- - -----
----- ------ - ---------------- -- ------ --- -

通过使用 Math.trunc() 函数,我们可以将 double 类型的数字直接转换为整数类型,且不会进行四舍五入。

方法二:使用位运算符进行截断

JavaScript 中提供了三种位运算符(&、|、^),它们都只能操作整数类型。当我们使用其中的一种位运算符对一个 double 类型的数字进行操作时,它会自动将这个数字转换成整数类型,然后再进行运算。这就为我们实现 double 到 int 的转换提供了便利。

----- --- - -----
----- ------ - --- - -- -- ------ --- -

通过使用位运算符进行截断,我们同样可以将 double 类型的数字准确地转换为整数类型。

总结

在 JavaScript 中将 double 转换成 int,我们可以使用 Math.trunc() 函数或位运算符进行截断,这两种方法都可以实现准确的转换。需要注意的是,如果我们使用位运算符对一个大于等于 2^31 的数字进行转换,则会得到错误的结果,因为 JavaScript 中的整数类型最大只能表示到 2^53。

示例代码

-- -- ------------ ----
----- ---- - -----
----- ------- - ----------------- -- ------- --- -

-- ----------
----- ---- - -----
----- ------- - ---- - -- -- ------- --- -

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/25786