python 里面專門有一個 round() 函數(shù)可以將任意的浮點數(shù)或者小數(shù)保留指定的位數(shù)。
成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計,有關(guān)成都企業(yè)網(wǎng)站建設(shè)方案、改版、費用等問題,行業(yè)涉及成都服務(wù)器租用等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
廢話不多說了,直接上一個例子。
目標(biāo):將 x = 34.4567809278 保留3位小數(shù)
結(jié)果 34.457
round(x,k) 中 x 為要處理的浮點數(shù), k 指要保留的位數(shù)
print(round(x)) #直接返回整數(shù)
python提供了三種浮點值:內(nèi)置的float與complex類型,以及標(biāo)準(zhǔn)庫的decimal.Decimal類型。
float類型存放雙精度的浮點數(shù),具體取值范圍依賴于構(gòu)建python的c編譯器,由于精度受限,進行相等性比較不可靠。
如果需要高精度,可使用decimal模塊的decimal.Decimal數(shù),這種類型可以準(zhǔn)確的表示循環(huán)小數(shù),但是處理速度較慢,適合于財政計算。
相關(guān)推薦:《Python基礎(chǔ)教程》
簡單函數(shù)比較floatS是否相等:
def equal_float(a,b):
return abs(a-b)=sys.float_info.epsilon
其中sys.float_info.epsilon是機器可以區(qū)分出的兩個浮點數(shù)的最小區(qū)別
math模塊提供了許多可用于floatS的函數(shù):
math.pi:常量3.1415926
math.pow(x,y):x的y次冪(浮點值)
……………….
使用math時先用import math導(dǎo)入該模塊
十進制數(shù)字
decimal模塊可以提供固定的十進制數(shù),精度可以自己定。要創(chuàng)建Decimal,要先用import decimal導(dǎo)入模塊。
十進制數(shù)是用decimal.Decimal()函數(shù)創(chuàng)建的,該函數(shù)可以接受一個整數(shù)或字符串作為參數(shù),但不能以浮點數(shù)作參數(shù)。如果用字符串作為參數(shù),可以使用簡單的十進制數(shù)表示或指數(shù)表示,另外,decimal.Decimal的精確表述方式可以可靠的進行相等性比較。
(python3.1開始,使用decimal.Decimal from-float()函數(shù)將floats轉(zhuǎn)換為十進制數(shù),以float型數(shù)作為參數(shù),并返回與該float最為接近的decimal.Decimal)
方法很多。
比如,可以用isinstance函數(shù)或type函數(shù)。
例子如下:
print(isinstance(1.,float))
print(type(1.)==float)
答: 假設(shè)用變量m接收具體的輸入值,可使用float函數(shù)將輸入的內(nèi)容轉(zhuǎn)化為浮點數(shù),具體代碼如下。
m = float(input("請輸入一個數(shù):"))
具體的功能即把輸入的一個數(shù)轉(zhuǎn)化為浮點數(shù)。
具體的實例如下所示。
對應(yīng)打印結(jié)果如下。
希望可以幫助到你~