簡體   English   中英

我正在學習Python,為什么在此示例中使用浮點數?

[英]I'm learning Python and why is a floating-point used in this example?

http://learnpythonthehardway.org/book/ex4.html

還有一個額外的信用問題,要求我解釋為什么使用浮點4.0而不是4。

我知道使用浮點數是為了提高准確性,但是我無法理解為什么在此示例中無論如何都需要使用浮點數。

在該特定示例中,似乎實際上不需要任何浮點數而不是int數。 如果您將某事除以某事可能會產生影響,但這不是在這里發生。 (即使那樣,這仍取決於您使用的是Python 2還是3,因為float拆分是3中的默認設置)。

如果您查看下面的評論,則zedshaw(作者)也承認:

МихаилГруздев:為什么將4.0用於空間? 也許它的驅動程序變量值應該是浮點數?

zedshaw:簡單介紹一下浮點數是一個小難題。 從數學上講,練習沒有多大意義,而只是練習。 現在繼續。

使用浮點是因為在Python中,將int除以int會產生一個int整數除法 ),此處不打算使用int 如果將float除以int或將int除以float ,則會得到一個float

例:

   4/3
=> 1
   4.0/3
=> 1.3333333333333333
   2*4/3
=> 2
   2*4.0/3
=> 2.6666666666666665

這是因為有一個叫做“整數除法”的東西。 基本上,這意味着如果將兩個整數相除,則結果數必須是整數。 因此,例如3/4將導致04/3將導致1 這是因為“實際”數學中的3/4會給您0.75,然后將0.75轉換為整數,Python會截斷浮點值並使您剩下0。

解決此問題的最簡單方法是使用4.0而不是4。將整數轉換為浮點數,而忽略整數除法,因為整數除以浮點數會導致浮點數。 3/4.0等於0.75

具有整數操作數的算術運算結果為整數。

>>> 3 / 2
1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM