簡體   English   中英

在特殊情況下,強制除法在Python中是浮點數

[英]Forcing division to be floating-point in Python in a special case

此代碼打印17,但我希望使用浮點執行除法(因此它應該打印17.5而不是)。 如何強制分區處於浮點狀態?

math = 8
physics = 9.5
algebra = 7.50
geometry = 10

**print "My GPA is %d" % ((math + physics + algebra + geometry)/2)**

%d用於整數,浮點數用於%f 使用%d表示浮點數只會打印它的小數部分。

>>> print "My GPA is %f" % ((math + physics + algebra + geometry)/2)
My GPA is 17.500000

要么:

>>> print "My GPA is %.1f" % ((math + physics + algebra + geometry)/2)
My GPA is 17.5

使用新樣式字符串格式:

>>> print "My GPA is {:.1f}" .format((math + physics + algebra + geometry)/2)
My GPA is 17.5

另請注意,py2.x中的整數除法會截斷輸出並返回一個整數。

要解決此問題,您應該將至少一個操作數轉換為float。

>>> 3/2
1
>>> 3/float(2)
1.5
>>> 3/2.
1.5

或者導入python3.x的divison

>>> from __future__ import division
>>> 3/2
1.5

暫無
暫無

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

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