如何删除 JavaScript 数字的小数部分?

front end technologyjavascriptweb development

在本教程中,我们将学习如何在 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 库函数相比,按位运算从数字中删除小数部分所需的时间明显更少。


相关文章