方法:1、用字串格式化,語法「print("%.2f" % a)」;2、用round內建函數,語法「round(a, 2)」;3、用decimal模組,語法「Decimal(a).quantize(Decimal("0.00"))」;4、用序列切片,語法「str(a).split('.')[0] '.' str(a) .split('.')[1][:2]」;5、用re模組。
本教學操作環境:windows7系統、python3版,DELL G3電腦
很多小夥伴在學習python的時候可能會遇到對資料進行格式化輸出的需求,其中最常見的需求為:保留幾位小數。今天這篇文章就以python怎麼保留兩位小數為例,來介紹一下python資料格式化的方法。
大部分語言都可以使用字串格式化的方法來實現保留兩位小數的效果,python也不例外:
a = 12.345
print("%.2f" % a) # %代表格式化输出,.2代表小数点后保留两位,f代表数据类型是浮点型
python內建了一個名為round的函數,這個函數可以用來對資料進行格式化。程式碼如下:
a = 12.345
a1 = round(a, 2) #将a通过round函数处理后赋值给a1,传入的2代表保留两位小数
print(a1)
類似於java,python也專門提供了一個decimal模組用於精確運算,它也可以進行資料的格式化輸出。程式碼如下:
from decimal import Decimal
a = 12.345
Decimal(a).quantize(Decimal("0.00")) # 使用默认的进位方式(同round)“0.00”表示保留小数点后两位
註:python的round採用的進位方式比較特殊,有點類似四捨五入,但準確的來說應該叫四捨六入五成雙。有興趣的朋友可以了解一下數值修約和基進偶舍。
以上就是常規的保留兩位小數的方法,接下來介紹兩種非常規的方法(使用字串處理的方法,這種方法只保留兩位小數,不做四捨五入)
原理很簡單,只要找到小數點,然後進行切片即可。程式碼如下:
a = 12.345
str(a).split('.')[0] + '.' + str(a).split('.')[1][:2] #使用序列切片的方式,切出小数点前的数据,还有小数点后两位的数据,然后进行拼装
類似切片,不過這次使用正規匹配來定位小數點位置。
import re
a = 12.345
re.findall(r"\d{1,}?\.\d{2}", str(a)) #使用正则匹配,将符合规则(一个小数点前有很多位数字,小数点后面只有两位数字的片段)字符串片段取出
【相關推薦:Python3影片教學 】
以上是python怎麼保留兩位小數的詳細內容。更多資訊請關注PHP中文網其他相關文章!