一、四捨五入的基本概念
四捨五入,是數學中的一種運算方式,即將一個數字保留到最接近它的整數位。舉例來說,將3.14四捨五入保留兩位小數,得到的結果是3.14;如果是3.145,則應四捨五入為3.15。
二、JS中的四捨五入
在JS中,主要有兩個函數可以實現四捨五入的功能:toFixed()和toPrecision()。其中,toFixed()是保留小數位數的函數,而toPrecision()是保留有效數字位數的函數。
三、toFixed()函數詳解
toFixed()函數是JS中最常用的四捨五入函數,它將一個數字保留指定位數的小數後輸出。該函數的語法如下:
number.toFixed(digits)
其中,number是要進行格式化的數字;digits是保留的小數位數,可以是0到20之間的任意整數。如果digits參數省略,則默認保留0位小數。
下面是一個例子,將一個數字保留兩位小數:
var num = 3.141592653589793; console.log(num.toFixed(2)); // 輸出:3.14
需要注意的是,toFixed()函數實際上是將一個浮點數轉換為一個字符串,因此返回的結果是一個字符串,而不是一個數字。如果要將返回的字符串轉換為數字,需要使用parseFloat()或者Number()函數。
四、toPrecision()函數詳解
toPrecision()函數可以將一個數字保留指定的有效數字位數,並且會自動進行四捨五入。該函數的語法如下:
number.toPrecision(digits)
其中,number是要進行格式化的數字;digits是保留的有效數字位數,可以是1到21之間的任意整數。如果digits參數省略,則默認保留所有有效數字。
下面是一個例子,將一個數字保留五個有效數字:
var num = 1234.56789; console.log(num.toPrecision(5)); // 輸出:1234.6
需要注意的是,和toFixed()函數一樣,toPrecision()函數實際上是將一個浮點數轉換為一個字符串,因此返回的結果也是一個字符串,而不是一個數字。如果要將返回的字符串轉換為數字,同樣需要使用parseFloat()或者Number()函數。
五、四捨五入的小技巧
在JS中,由於浮點數精度的問題,進行數值計算時往往會出現一些不準確的結果。比如下面的例子:
console.log(0.1 + 0.2); // 輸出:0.30000000000000004
如果要對這個結果保留兩位小數,顯然使用toFixed()函數是不可行的。但是我們可以使用一種小技巧,將計算結果*100之後再進行四捨五入,最後再除以100即可:
var result = (0.1 + 0.2) * 100; result = Math.round(result) / 100; console.log(result.toFixed(2)); // 輸出:0.30
這種方法可以在一定程度上避免因為浮點數精度導致的計算錯誤,不過需要注意的是,這種做法可能會對某些特殊情況產生意外的結果。
六、總結
本文詳細介紹了JS中的四捨五入保留兩位小數的方法。同時,也介紹了toPrecision()函數和一種小技巧來處理一些浮點數計算上的問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/192007.html