手機(jī)也能上課
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