Python保留指定位數(shù)小數(shù)的5種方法總結(jié)
1 %.2f’ %[變量] 【四舍五入】
可以在print()打印處使用,也可以賦值給新的變量進(jìn)行輸出
# 四舍五入方法 a = 2.345566 print('%.4f'% a) # 2.3456 print('%.3f'% a) # 2.346 print('%.2f'% a) # 2.35 # 賦值給新的變量 c = '%.2f'% a print(c) # 2.35
2 format函數(shù)【四舍五入】
可以在print()打印處使用,也可以賦值給新的變量進(jìn)行輸出
# 四舍五入方法 a = 2.345566 print(format(a, '.4f')) # 2.3456 print(format(a, '.3f')) # 2.346 # 賦值給新的變量 c = format(a, '.4f') print(c) # 2.3456
3 直接截?cái)唷静贿M(jìn)行四舍五入】
3.1 先放大指定倍數(shù),后取整,后再除以指定倍數(shù)
1 保留三位小數(shù):先×100,后int,后÷100
a = 2.345566 c = int(a * 100) / 100 print(c) # 2.34
2 保留三位小數(shù):先×1000,后int,后÷1000
a = 2.345566 c = int(a * 1000) / 1000 print(c) # 2.345
3 保留四位小數(shù):先×10000,后int,后÷10000
a = 2.345566 c = int(a * 10000) / 10000 print(c) # 2.3455
3.2 轉(zhuǎn)為字符串進(jìn)行字符串截取,截取小數(shù)點(diǎn)后指定的位數(shù)【不進(jìn)行四舍五入】【不推薦有點(diǎn)麻煩】
a = 2.345566 # 進(jìn)行分割 a_0 = str(a).split('.')[0] a_1 = str(a).split('.')[1] # 截取小數(shù)點(diǎn)后的 a_point = a_1[0:2] # 截取2位 # 字符串連接 a_new = a_0 + '.' + a_point # 將string類型轉(zhuǎn)換為float類型 a_new_number = float(a_new) print(a_new_number) # 2.34
4 round()函數(shù)【精確的四舍五入,但無(wú)法保證相同的小數(shù)位數(shù)】
round(number, ndigits=None)
返回小數(shù)點(diǎn)后四舍五入到ndigits精度的數(shù)字。如果ndigits被省略或?yàn)镹one,它將返回與其輸入最近的整數(shù)。
注意:round()對(duì)于float的行為可能令人驚訝:例如,round(2.675,2)給出的是2.67,而不是預(yù)期的2.68。這不是一個(gè)錯(cuò)誤:這是因?yàn)榇蠖鄶?shù)十進(jìn)制分?jǐn)?shù)【decimal fractions】不能精確地表示為浮點(diǎn)值。
5 Numpy數(shù)組 np.set_printoptions【四舍五入】
只可以打印處使用,不可以賦值
np.set_printoptions(precision=3, suppress=True, formatter={})
precision:保留幾位小數(shù),后面不會(huì)補(bǔ)0
supress:對(duì)很大/小的數(shù)都不使用科學(xué)計(jì)數(shù)法 (True)
formatter:強(qiáng)制格式化,后面會(huì)補(bǔ)0
import numpy as np a = np.random.random(3) print('before set precision: \n',a) np.set_printoptions(precision=3, suppress=True) print('after set precision: \n',a) np.set_printoptions(formatter={'float': '{: 0.3f}'.format}) print('after set formatter: \n',a) # before set options: # [ 0.05856348 0.5400039 0.70000603] # after set precision: # [ 0.059 0.54 0.7] # after set formatter:【強(qiáng)制補(bǔ)0】 # [ 0.059 0.540 0.700]
6 總結(jié)
第 1、2、4三種方法可以進(jìn)行四舍五入,可以對(duì)變量賦值
第3種方法不可以進(jìn)行四舍五入,可以對(duì)變量賦值
第5種方法可以進(jìn)行四舍五入,但不可以賦值
學(xué)習(xí)鏈接:
到此這篇關(guān)于Python保留指定位數(shù)小數(shù)的5種方法的文章就介紹到這了,更多相關(guān)Python保留指定位數(shù)小數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python 正確保留多位小數(shù)的實(shí)例
- python 除法保留兩位小數(shù)點(diǎn)的方法
- python格式化輸出保留2位小數(shù)的實(shí)現(xiàn)方法
- python保留小數(shù)位的三種實(shí)現(xiàn)方法
- python中round函數(shù)保留兩位小數(shù)的方法
- Python如何保留float類型小數(shù)點(diǎn)后3位
- python保留兩位小數(shù)的3種方法實(shí)例
- python保留小數(shù)函數(shù)的幾種使用總結(jié)
- python保留若干位小數(shù)?format與round的使用區(qū)別
- 如何利用Python保留指定位數(shù)的小數(shù)
- Python除法保留兩位小數(shù)點(diǎn)的三種方法實(shí)現(xiàn)
- python保留小數(shù)點(diǎn)位數(shù)的多種方式(附demo)
- python保留兩位小數(shù)的五種方法
- python實(shí)現(xiàn)保留小數(shù)位數(shù)的3種方法
相關(guān)文章
Python?的矩陣傳播機(jī)制Broadcasting和矩陣運(yùn)算
這篇文章主要介紹了Python?的矩陣傳播機(jī)制Broadcasting和矩陣運(yùn)算,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06Python數(shù)據(jù)可視化之基于pyecharts實(shí)現(xiàn)的地理圖表的繪制
今天給大家?guī)?lái)的是Python的相關(guān)知識(shí),文章圍繞著pyecharts繪制地理圖表展開,文中有非常詳細(xì)的代碼示例及介紹,需要的朋友可以參考下2021-06-06關(guān)于Pytorch的MNIST數(shù)據(jù)集的預(yù)處理詳解
今天小編就為大家分享一篇關(guān)于Pytorch的MNIST數(shù)據(jù)集的預(yù)處理詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01python數(shù)據(jù)可視化pygal模擬擲骰子實(shí)現(xiàn)示例
這篇文章主要為大家介紹了python數(shù)據(jù)可視化pygal模擬擲骰子實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python 內(nèi)置函數(shù)之隨機(jī)函數(shù)詳情
這篇文章主要介紹了Python 內(nèi)置函數(shù)之隨機(jī)函數(shù),文章將圍繞Python 內(nèi)置函數(shù)、隨機(jī)函數(shù)的相關(guān)資料展開內(nèi)容,需要的朋友可以參考一下,希望對(duì)你有所幫助2021-11-11對(duì)Pyhon實(shí)現(xiàn)靜態(tài)變量全局變量的方法詳解
今天小編就為大家分享一篇對(duì)Pyhon實(shí)現(xiàn)靜態(tài)變量全局變量的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python pandas輕松通過(guò)特定列的值多條件去篩選數(shù)據(jù)及contains方法的使用
這篇文章主要介紹了python pandas輕松通過(guò)特定列的值多條件去篩選數(shù)據(jù)及contains方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02