如何在 JavaScript 中将数字舍入到小数点后一位?
在本教程中,我们将学习如何使用 JavaScript 将数字舍入到小数点后一位。舍入浮点数并在小数点后显示特定位数的需求多种多样。
在本例中,我们只需要显示小数点后一位数字。但是,在本教程结束时,我们将创建一个可自定义的手动函数,可以舍入数字并在小数点后显示特定位数的数字。
此示例让用户了解将数字舍入到小数点后一位的基本需求。假设您正在为在线商店开发应用程序,您需要显示每种产品的价格,但在数据库中,您已将价格存储到小数点后五位。从数据库获取产品价格后,您需要显示到小数点后一位。在这种情况下,您必须找到解决问题的方法。
此外,在本教程中,我们有不同的方法来实现我们的目标。
使用 `toFixed()` 方法
使用 `Math.round()` 函数
使用 `toFixed()` 方法
在这种方法中,我们将使用 **`toFixed()`** 方法将数字舍入到小数点后一位。它接受一个参数;您希望保留在小数点后的 *位数*。此外,即使您添加数字输入,`toFixed()` 方法也“*返回字符串输出*”。我们需要将字符串输出转换为浮点数。
语法
用户可以按照以下语法使用 `toFixed()` 方法。
number.toFixed(decimal_digits);
参数
**`decimal_digits`** − 此参数接受数字输入,表示您希望保留在小数点后的位数。在本例中,我们将使用 1 作为此参数。
示例
以下示例演示如何使用 `toFixed()` 方法将数字舍入到小数点后一位。如上所述,`toFixed()` 方法返回一个字符串,因此我们将再次将返回的字符串值转换为浮点数。
<!DOCTYPE html> <html> <body> <h2>Round a number to 1 decimal place in JavaScript</h2> <h4> After rounding the 103.72456 to 1 decimal place, output is </h4> <p id="output"> </p> <p id="previousType"> </p> <p id="AfterType"> </p> <script type="text/javascript"> let output = document.getElementById("output"); let previousType = document.getElementById("previousType"); let AfterType = document.getElementById("AfterType"); // rounding number to 1 decimal place using toFixed() method let number = 103.72456; let result = number.toFixed(1); output.innerHTML = result; previousType.innerHTML = " The type of output is: " + typeof result; result = parseFloat( result ); AfterType.innerHTML = " The type of the output after converting to float is " + typeof result; </script> </body> </html>
在上面的输出中,用户可以看到使用 **`toFixed()`** 方法将数字舍入到小数点后一位后的输出类型是一个字符串。之后,我们使用 **`parseFloat()`** 函数将输出转换为浮点数。
使用 Math.round() 函数
在这种方法中,我们将使用 JavaScript 数学库中的 **`Math.round()`** 函数。`Math.round()` 函数将数字舍入到最接近的数字,但我们将应用一些精确的逻辑来仅将数字舍入到一位。
我们可以将数字乘以 10 并应用 `round()` 函数。之后,我们可以再次将舍入后的数字除以 10,这样我们就可以实现我们的目标。
用户可以使用此示例来理解上述方法。例如,我们想将数字 10.34532 舍入到小数点后一位。让我们将数字乘以 10,它变成 103.4532。现在,如果我们应用 round 函数,我们得到的结果是 103。接下来,将数字除以 10,数字变成 10.3,我们得到正确的结果。
语法
let result = Math.round(number*10)/10;
示例
在下面的示例中,我们创建了一个舍入函数,以便用户可以根据自己的需要自定义它。我们的函数接受 2 个参数,一个是您要舍入的数字,另一个是您希望保留在小数点后的位数。
<!DOCTYPE html> <html > <body> <h2>Round a number to 1 decimal place in JavaScript</h2> <p> Result after rounding the 81.43426 to 1 decimal place using the Math.Round() method − </p> <p id="output"> </p> <script> let output = document.getElementById( "output" ); // customizable function to round number to any decimal place function roundNumber(number, decimal_digit) { let powerOften = Math.pow( 10, decimal_digit ); let result = Math.round( number * powerOften ) / powerOften; output.innerHTML = result; } let number = 81.43426; roundNumber(number, 1); </script> </body> </html>
在上面的示例中,我们为 `decimal_digit` 参数传递了 1 作为值。因此,我们将得到 10¹ = 10,`Math.round()` 函数将数字舍入到小数点后一位。
如果用户想将数字舍入到 n 位小数,他们将 n 作为 `decimal_digit` 值传递,作为 10 的幂,他们得到 10ⁿ,`Math.round()` 函数将数字舍入到 n 位小数。
结论
在本教程中,我们使用了两种方法将数字舍入到小数点后一位。第一种方法不太好,因为它返回字符串,您需要再次将其转换为浮点数。第二种方法是有益的,因为它即使可以将数字舍入到 n 位小数也是可自定义的。