如何删除 JavaScript 数字的小数部分?
在本教程中,我们将学习如何在 JavaScript 中删除数字的 小数部分。在使用 JavaScript 时,开发人员很多时候需要处理存储在数据库中的数字,需要将浮点数和双精度数转换为纯十进制或整数。
在这种情况下,开发人员可以使用多种方法来截断数字的小数部分。我们将看到解决上述问题的不同方法。
使用 Math.trunc() 方法
使用 按位 运算符
使用 Math.ceil() 和 Math.floor() 方法
使用 Math.Trunc() 方法
Math.trunc() 是 JavaScript 中删除小数部分最流行的方法。它以正数、负数或浮点数作为输入,并在删除小数部分后返回整数部分。例如,当我们输入 5.45 时,它仅返回 5,而对于输入 -5.45,它仅返回 -5。
语法
用户可以按照以下语法使用 Math.trunc() 方法。
let decimal = Math.trunc( number )
参数
Number − 此参数表示我们需要从中删除小数部分的数字输入。
示例 1
以下示例演示了 Math.trunc() 方法。
<!DOCTYPE html> <html> <body> <h2>从数字中删除小数部分。</h2> <p> 使用 Math.trunc() 方法从 4.96 中删除小数部分后的结果。</p> <p id = "result"></p> <script type="text/javascript" > let number = 4.96; let decimal = Math.trunc( number ); document.getElementById("result").innerHTML = decimal; </script> </body> </html>
在上面的输出中,用户可以看到,我们删除了 4.96 的小数部分,它变成了 4。
使用位运算符
在这种方法中,我们将使用不同的位运算符来删除数字的小数部分。为了解决我们的问题,我们可以使用四种不同的位运算符,例如按位或、双非、右移和左移运算符。我们将对输入数字与 0 执行按位或运算。同样,以同样的方式,我们可以对输入数字执行右移和左移 0,从而删除小数部分。
内置数学库函数比按位运算需要更多的计算时间。因此,这是截断数字的最快方法。
语法
let result = ~~number // 双重非运算符 let result = number | 0 // 数字与 0 的按位或运算。 let result = number >> 0 // 数字右移 0。 let result = number << 0 // 数字左移 0。
示例 2
用户可以通过以下示例学习对数字执行按位运算以删除小数部分。我们在以下示例中使用了所有不同的按位运算符并打印输出。
<!DOCTYPE html> <html> <body> <h2> 从数字中删除小数部分。 <h4> 使用 Double Not 运算符从 <i> -5.69 </i> 中删除小数部分后。</h4> <p id = "DoubleNot"> </p> <h4> 使用 BitWise OR 运算符从 <i> 2.34 </i> 中删除小数部分后。</h4> <p id = "BitwiseOR"> </p> <h4>使用 RightShift 运算符从 <i> 100.87 </i> 中删除小数部分后。</h4> <p id = "RightShift"> </p> <h4> 使用左 Shift 运算符从 <i> -0.7 </i> 中删除小数部分后。</h4> <p id = "LeftShift"> </p> <script type="text/javascript" > // 使用双重非运算符删除小数部分。 let DoubleNot = document.getElementById("DoubleNot"); let number = -5.69; DoubleNot.innerHTML = ~~number; // 使用按位或运算符删除小数部分。 let BitwiseOR = document.getElementById("BitwiseOR"); number = 2.34; BitwiseOR.innerHTML = number | 0; // 使用右移运算符删除小数部分。 let = document.getElementById("RightShift"); number = 100.87; RightShift.innerHTML = number >> 0; // 使用左移运算符删除小数部分。 let LeftShift = document.getElementById("LeftShift"); number = -0.7; LeftShift.innerHTML = number << 0; </script> </body> </html>
在上面的输出中,用户可以观察到我们如何使用按位运算符截断数字的小数部分,并返回小数点左边的数字。
使用 Math.ceil() 和 Math.floor() 方法
我们将在此方法中使用 Math.ceil() 和 Math.floor() 方法。Math.ceil() 方法返回浮点数元素的下一个更大整数元素。例如,对于 5.1,它返回 5。
Math.floor() 方法返回浮点数输入的前一个小整数。例如,对于输入 5.9,它返回 5。
语法
Math.ceil ( number ) Math.floor ( number )
示例 2
在下面的例子中,我们使用了 Math.ceil() 方法和 Math.floor() 方法。此外,我们还打印了这两种方法的输出。
<!DOCTYPE html> <html> <body> <h2>从数字中删除小数部分</h2> <h4> 使用 Math.ceil() 方法从 <i> 0.01 </i> 中删除小数部分后。</h4> <p id = "CeilMethod"> </p> <h4> 使用 Math.floor() 方法从 <i> 6.99 </i> 中删除小数部分后。 </h4> <p id = "FloorMethod"> </p> <script type="text/javascript"> // 使用 Math.ceil() 方法删除小数部分。 let CeilMethod = document.getElementById("CeilMethod"); let number = 0.01; CeilMethod.innerHTML = Math.ceil(number); // 使用 Math.floor() 方法删除小数部分。 let FloorMethod = document.getElementById("FloorMethod"); number = 6.99; FloorMethod.innerHTML = Math.floor(number); </script> </body> </html>
在上面的输出中,用户可以看到 Math.ceil() 函数返回了下一个大于 0.01 的元素,即 1,而 Math.floor() 函数返回了前一个较小的整数 6.99,即 6。
结论
在本教程中,我们使用了三种方法来删除数字的小数部分。最流行的方法是第一种方法,最有效的是第二种方法。与 JavaScript 的 Math 库函数相比,按位运算从数字中删除小数部分所需的时间明显更少。