如何去除 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
以下示例演示了在JavaScript中使用 Math.trunc() 方法的用法。
<!DOCTYPE html>
<html>
<body>
<h2>Removing the decimal part from the number.</h2>
<p> Result fter removing the decimal part from 4.96 using Math.trunc() method.</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。同样地,我们可以对输入数字执行右移和左移操作,将其小数部分去除。
内置的Math库函数比位运算需要更多的计算时间。因此,这是截断数字的最快方法。
语法
let result = ~~number // Double Not operator
let result = number | 0 // Bitwise OR operation of number with 0.
let result = number >> 0 // Right shift of number by 0.
let result = number << 0 // Left shift of number by 0.
示例2
用户可以通过以下示例学习如何使用位运算符来去除数字的小数部分。我们在下面的示例中使用了所有不同的位运算符并打印输出结果。
<!DOCTYPE html>
<html>
<body>
<h2> Removing the decimal part from the number.
<h4> After removing the decimal part from <i> -5.69 </i> using Double Not operator.</h4>
<p id = "DoubleNot"> </p>
<h4> After removing the decimal part from <i> 2.34 </i> using BitWise ORoperator.</h4>
<p id = "BitwiseOR"> </p>
<h4> After removing the decimal part from <i> 100.87 </i> using RightShift operator. </h4>
<p id = "RightShift"> </p>
<h4> After removing the decimal part from <i> -0.7 </i> using left Shiftoperator. </h4>
<p id = "LeftShift"> </p>
<script type="text/javascript" >
// remove decimal part using the double not operator.
let DoubleNot = document.getElementById("DoubleNot");
let number = -5.69;
DoubleNot.innerHTML = ~~number;
// remove decimal part using the Bitwise OR operator.
let BitwiseOR = document.getElementById("BitwiseOR");
number = 2.34;
BitwiseOR.innerHTML = number | 0;
// remove decimal part using the Right shift operator.
let = document.getElementById("RightShift");
number = 100.87;
RightShift.innerHTML = number >> 0;
// remove decimal part using the left shift operator.
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>Removing the decimal part from the number</h2>
<h4> After removing the decimal part from <i> 0.01 </i> using the Math.ceil() method. </h4>
<p id = "CeilMethod"> </p>
<h4> After removing the decimal part from <i> 6.99 </i> using the Math.floor() method. </h4>
<p id = "FloorMethod"> </p>
<script type="text/javascript">
// remove decimal part using the Math.ceil() method.
let CeilMethod = document.getElementById("CeilMethod");
let number = 0.01;
CeilMethod.innerHTML = Math.ceil(number);
// remove decimal part using the Math.floor() method.
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库函数去除数字的小数部分要少。