python提供了三種浮點(diǎn)值:內(nèi)置的float與complex類型,以及標(biāo)準(zhǔn)庫(kù)的decimal.Decimal類型。
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、滄源網(wǎng)絡(luò)推廣、微信小程序開發(fā)、滄源網(wǎng)絡(luò)營(yíng)銷、滄源企業(yè)策劃、滄源品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供滄源建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
float類型存放雙精度的浮點(diǎn)數(shù),具體取值范圍依賴于構(gòu)建python的c編譯器,由于精度受限,進(jìn)行相等性比較不可靠。
如果需要高精度,可使用decimal模塊的decimal.Decimal數(shù),這種類型可以準(zhǔn)確的表示循環(huán)小數(shù),但是處理速度較慢,適合于財(cái)政計(jì)算。
相關(guān)推薦:《Python基礎(chǔ)教程》
簡(jiǎn)單函數(shù)比較floatS是否相等:
def equal_float(a,b):
return abs(a-b)=sys.float_info.epsilon
其中sys.float_info.epsilon是機(jī)器可以區(qū)分出的兩個(gè)浮點(diǎn)數(shù)的最小區(qū)別
math模塊提供了許多可用于floatS的函數(shù):
math.pi:常量3.1415926
math.pow(x,y):x的y次冪(浮點(diǎn)值)
……………….
使用math時(shí)先用import math導(dǎo)入該模塊
十進(jìn)制數(shù)字
decimal模塊可以提供固定的十進(jìn)制數(shù),精度可以自己定。要?jiǎng)?chuàng)建Decimal,要先用import decimal導(dǎo)入模塊。
十進(jìn)制數(shù)是用decimal.Decimal()函數(shù)創(chuàng)建的,該函數(shù)可以接受一個(gè)整數(shù)或字符串作為參數(shù),但不能以浮點(diǎn)數(shù)作參數(shù)。如果用字符串作為參數(shù),可以使用簡(jiǎn)單的十進(jìn)制數(shù)表示或指數(shù)表示,另外,decimal.Decimal的精確表述方式可以可靠的進(jìn)行相等性比較。
(python3.1開始,使用decimal.Decimal from-float()函數(shù)將floats轉(zhuǎn)換為十進(jìn)制數(shù),以float型數(shù)作為參數(shù),并返回與該float最為接近的decimal.Decimal)
浮點(diǎn)型(Float)
Python的浮點(diǎn)數(shù)就是數(shù)學(xué)中的小數(shù),類似C語(yǔ)言中的double。
在運(yùn)算中,整數(shù)與浮點(diǎn)數(shù)運(yùn)算的結(jié)果是浮點(diǎn)數(shù).
浮點(diǎn)數(shù)也就是小數(shù),之所以稱為浮點(diǎn)數(shù),是因?yàn)榘凑湛茖W(xué)記數(shù)法表示時(shí),一個(gè)浮點(diǎn)數(shù)的小數(shù)點(diǎn)位置是可變的,比如,1.23x109和12.3x108是相等的。浮點(diǎn)數(shù)可以用數(shù)學(xué)寫法,如1.23,3.14,-9.01,等等。但是對(duì)于很大或很小的浮點(diǎn)數(shù),就必須用科學(xué)計(jì)數(shù)法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
整數(shù)和浮點(diǎn)數(shù)在計(jì)算機(jī)內(nèi)部存儲(chǔ)的方式是不同的,整數(shù)運(yùn)算永遠(yuǎn)是精確的而浮點(diǎn)數(shù)運(yùn)算則可能會(huì)有四舍五入的誤差。
python 里面專門有一個(gè) round() 函數(shù)可以將任意的浮點(diǎn)數(shù)或者小數(shù)保留指定的位數(shù)。
廢話不多說(shuō)了,直接上一個(gè)例子。
目標(biāo):將 x = 34.4567809278 保留3位小數(shù)
結(jié)果 34.457
round(x,k) 中 x 為要處理的浮點(diǎn)數(shù), k 指要保留的位數(shù)
print(round(x)) #直接返回整數(shù)