官术网_书友最值得收藏!

1.4.1 四舍五入運算

在實際應用中,我們經常需要對浮點數執行指定精度的四舍五入運算,以免小數位數過多。

對于簡單的四舍五入運算,使用內置的round(value,ndigits)函數即可實現,代碼(number_round.py)示例如下:


print(round(1.23, 1))
print(round(1.28, 1))
print(round(-1.27, 1))
print(round(1.25361,3))

執行py文件,輸出結果如下:


1.2
1.3
-1.3
1.254

當一個值剛好在兩個邊界的中間時,round()函數返回離它最近的偶數。例如,對于1.5或者2.5的舍入運算,使用round()函數的輸出結果是2。

傳給round()函數的ndigits參數可以是負數。這種情況下,舍入運算會作用在十位、百位、千位等,相關代碼(number_round.py)示例如下:


a = 1627731
print(round(a, -1))
print(round(a, -2))
print(round(a, -3))

執行py文件,輸出結果如下:


1627730
1627700
1628000

不要將舍入和格式化輸出混淆了。如果只是輸出一定長度的數,不需要使用round()函數,只需要在格式化的時候指定精度即可,相關代碼(number_round.py)示例如下:


x = 1.23456
print(f'{x: 0.2f}')
print(f'{x: 0.3f}')

執行py文件,輸出結果如下:


1.23
1.235

同樣,不要試著去舍入浮點值來修正表面上看起來正確的代碼,相關代碼(number_round.py)示例如下:


a = 2.1
b= 4.2
c = a + b
print(c)
print(round(c, 2))

執行py文件,輸出結果如下:


6.300000000000001
6.3

大多數情況下沒有必要使用浮點數,我們也不推薦這樣做,因為在計算的時候出現的小誤差是能被理解與容忍的。如果不能允許這樣的小誤差(比如涉及金融領域),那么就得考慮使用decimal模塊了。

主站蜘蛛池模板: 启东市| 博罗县| 潞城市| 龙游县| 恩平市| 蓝田县| 苗栗县| 尚义县| 潮安县| 镇巴县| 阜新| 南华县| 镇原县| 囊谦县| 辰溪县| 安义县| 洪洞县| 洛南县| 垫江县| 漯河市| 乐清市| 和龙市| 喀喇沁旗| 民乐县| 乌拉特前旗| 福州市| 舟山市| 日喀则市| 南平市| 萨迦县| 罗源县| 平果县| 浦江县| 浪卡子县| 兴隆县| 巩义市| 凌云县| 大新县| 尚志市| 桑植县| 额敏县|