5. 數(shù)據(jù)類型之浮點(diǎn)數(shù)
Python3 入門課程 / 5. 數(shù)據(jù)類型之浮點(diǎn)數(shù)

Python3 入門課程

手機(jī)也能上課
App下載
1/4

浮點(diǎn)數(shù)

Python 中使用浮點(diǎn)數(shù)來表示不是整數(shù)的數(shù)字。

浮點(diǎn)數(shù)表示的數(shù)字的例子:0.5 和 -7.8237591。

浮點(diǎn)數(shù)可以通過輸入帶小數(shù)點(diǎn)的數(shù)字直接創(chuàng)建,也可以使用整數(shù)除法等操作產(chǎn)生。

數(shù)字結(jié)尾的零會(huì)被忽略。

print(3/4)
print(0.523322)

計(jì)算機(jī)不能完全精確地存儲(chǔ)浮點(diǎn)數(shù),就像我們不能寫下1/3(0.3333333333333333 ...)的完整小數(shù)點(diǎn)一樣。

記住這一點(diǎn),因?yàn)樗鶗?huì)導(dǎo)致令人憤慨的錯(cuò)誤!

為什么計(jì)算機(jī)不能完全精確地存儲(chǔ)浮點(diǎn)數(shù)?

計(jì)算機(jī)不能精確存浮點(diǎn)數(shù),一是因?yàn)樗?nbsp;“空間” 有限。

一個(gè)數(shù)變成二進(jìn)制后可能很長(zhǎng),計(jì)算機(jī)存不下那么多,只能截?cái)嘁徊糠?,就有了誤差。

二是有些十進(jìn)制數(shù)像 0.1 和 0.2,變成二進(jìn)制后是無限循環(huán)的。

print(0.1+0.2) # 0.30000000000000004

所以在python中直接使用0.1+0.2并不會(huì)等于0.3。


計(jì)算機(jī)存儲(chǔ)空間有限,存不下完整的無限循環(huán)的數(shù),所以就沒辦法精確存儲(chǔ)浮點(diǎn)數(shù)啦。

不過像 0.5 這樣的數(shù)在二進(jìn)制里很簡(jiǎn)單,就可以精確存儲(chǔ)。

print(0.1+0.5) # 0.6



+10 經(jīng)驗(yàn) +10積分
解析
提示
參考答案
+10 經(jīng)驗(yàn) +10積分
視頻播放結(jié)束,是否學(xué)習(xí)下一節(jié)?