python浮點函數(shù),python 浮點數(shù)

Python將浮點數(shù)保留指定的位數(shù)

python 里面專門有一個 round() 函數(shù)可以將任意的浮點數(shù)或者小數(shù)保留指定的位數(shù)。

公司主營業(yè)務(wù):網(wǎng)站設(shè)計制作、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出滿城免費(fèi)做網(wǎng)站回饋大家。

廢話不多說了,直接上一個例子。

目標(biāo):將 x = 34.4567809278 保留3位小數(shù)

結(jié)果 34.457

round(x,k) 中 x 為要處理的浮點數(shù), k 指要保留的位數(shù)

print(round(x)) #直接返回整數(shù)

python浮點數(shù)是什么意思

浮點型(Float)

Python的浮點數(shù)就是數(shù)學(xué)中的小數(shù),類似C語言中的double。

在運(yùn)算中,整數(shù)與浮點數(shù)運(yùn)算的結(jié)果是浮點數(shù).

浮點數(shù)也就是小數(shù),之所以稱為浮點數(shù),是因為按照科學(xué)記數(shù)法表示時,一個浮點數(shù)的小數(shù)點位置是可變的,比如,1.23x109和12.3x108是相等的。浮點數(shù)可以用數(shù)學(xué)寫法,如1.23,3.14,-9.01,等等。但是對于很大或很小的浮點數(shù),就必須用科學(xué)計數(shù)法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。

整數(shù)和浮點數(shù)在計算機(jī)內(nèi)部存儲的方式是不同的,整數(shù)運(yùn)算永遠(yuǎn)是精確的而浮點數(shù)運(yùn)算則可能會有四舍五入的誤差。

python怎么輸出浮點數(shù)

python提供了三種浮點值:內(nèi)置的float與complex類型,以及標(biāo)準(zhǔn)庫的decimal.Decimal類型。

float類型存放雙精度的浮點數(shù),具體取值范圍依賴于構(gòu)建python的c編譯器,由于精度受限,進(jìn)行相等性比較不可靠。

如果需要高精度,可使用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是機(jī)器可以區(qū)分出的兩個浮點數(shù)的最小區(qū)別

math模塊提供了許多可用于floatS的函數(shù):

math.pi:常量3.1415926

math.pow(x,y):x的y次冪(浮點值)

……………….

使用math時先用import math導(dǎo)入該模塊

十進(jìn)制數(shù)字

decimal模塊可以提供固定的十進(jìn)制數(shù),精度可以自己定。要創(chuàng)建Decimal,要先用import decimal導(dǎo)入模塊。

十進(jìn)制數(shù)是用decimal.Decimal()函數(shù)創(chuàng)建的,該函數(shù)可以接受一個整數(shù)或字符串作為參數(shù),但不能以浮點數(shù)作參數(shù)。如果用字符串作為參數(shù),可以使用簡單的十進(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)

Python中的浮點數(shù)原理與運(yùn)算分析

Python中的浮點數(shù)原理與運(yùn)算分析

本文實例講述了Python中的浮點數(shù)原理與運(yùn)算。分享給大家供大家參考,具體如下:

先看一個違反直覺的例子:

s = 0.

for i in range(10): s += .1

s

0.9999999999999999

# 錯誤被累加

再看一個更為普遍,直接影響判斷邏輯的例子:

from math import sqrt

a = sqrt(2)

a*a == a

False

之所以會出現(xiàn)以上的結(jié)果,在于 Python (更準(zhǔn)確地說是計算機(jī)硬件體系結(jié)構(gòu))對浮點數(shù)的表示,我們來看計算機(jī)(基于二進(jìn)制)對十進(jìn)制小數(shù) 0.1 的表示,十進(jìn)制小數(shù)向二進(jìn)制小數(shù)轉(zhuǎn)換的方法請見 Python十進(jìn)制小數(shù)與二進(jìn)制小數(shù)相互轉(zhuǎn)換。將十進(jìn)制小數(shù) 0.1 轉(zhuǎn)換為二進(jìn)制時的結(jié)果為 0.0001100110011001....,無限循環(huán),計算機(jī)無法展示無限的結(jié)果,只能對結(jié)果進(jìn)行截斷,這是浮點數(shù)精度問題的根源。

“==” on floats

基于以上的考慮,當(dāng)我們進(jìn)行浮點數(shù)的相等比較時,要特別小心,直接使用 == 是有問題的,一種通用的做法即是,不是檢測浮點數(shù)是否相等,而是檢測二者是否足夠接近,

a = sqrt(2)

abs(a*a-2) epsilon

# 判斷是否小于某一小量

本文名稱:python浮點函數(shù),python 浮點數(shù)
當(dāng)前網(wǎng)址:http://muchs.cn/article40/phjceo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、搜索引擎優(yōu)化、用戶體驗微信小程序、ChatGPT網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司