在 JavaScript 中,我们经常需要处理数字类型。有时候我们需要将一个 double 类型的数字转换为整数类型(int),但是如果直接使用 JavaScript 内置函数 Math.round() 进行转换,则会进行四舍五入,这并不符合我们的要求。那么该怎样进行精确的转换呢?
方法一:使用 Math.trunc()
Math.trunc() 函数用于去除一个数的小数部分,返回整数部分。
const num = 3.14; const intNum = Math.trunc(num); // intNum 的值为 3
通过使用 Math.trunc() 函数,我们可以将 double 类型的数字直接转换为整数类型,且不会进行四舍五入。
方法二:使用位运算符进行截断
JavaScript 中提供了三种位运算符(&、|、^),它们都只能操作整数类型。当我们使用其中的一种位运算符对一个 double 类型的数字进行操作时,它会自动将这个数字转换成整数类型,然后再进行运算。这就为我们实现 double 到 int 的转换提供了便利。
const num = 3.14; const intNum = num | 0; // intNum 的值为 3
通过使用位运算符进行截断,我们同样可以将 double 类型的数字准确地转换为整数类型。
总结
在 JavaScript 中将 double 转换成 int,我们可以使用 Math.trunc() 函数或位运算符进行截断,这两种方法都可以实现准确的转换。需要注意的是,如果我们使用位运算符对一个大于等于 2^31 的数字进行转换,则会得到错误的结果,因为 JavaScript 中的整数类型最大只能表示到 2^53。
示例代码
// 使用 Math.trunc() 进行转换 const num1 = 3.14; const intNum1 = Math.trunc(num1); // intNum1 的值为 3 // 使用位运算符进行转换 const num2 = 3.14; const intNum2 = num2 | 0; // intNum2 的值为 3
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/25786