我正在尝试编写一个python脚本,它将两个数字分开,然后存储小数点后第一个数字的值,但首先我要打印除法的答案。 例: 31/7应该是4,428但是当我使用
时def spiel():
anzahl=int(raw_input("Anzahl der Spieler"))
spieler=int(raw_input("Jeder wievielte spielt"))
if anzahl>0 and spieler>0:
#Quotient berechnen
q=anzahl/spieler
print '%.2f'%q
我得到答案4.00,我做错了什么。
如果你能告诉我如何存储小数点之后的第一个小数点,那将是惊人的! 提前致谢
答案 0 :(得分:0)
你将int除以int。你应该使用浮动
def spiel():
anzahl=float(raw_input("Anzahl der Spieler"))
spieler=float(raw_input("Jeder wievielte spielt"))
if anzahl>0 and spieler>0:
#Quotient berechnen
q=anzahl/spieler
print '%.2f'%q
回应评论:
有多种方法可以做到这一点,最好的方法取决于您的应用:
q =anzahl/spieler
print "{}".format(int(10*(q%1)))
print "{}".format(int((q-int(q))*10))
print "{}".format(str(a).split(".")[1][0])
可能是一些我没想过的更容易的
答案 1 :(得分:0)
在python2.7中: 如果除以两个整数,则answer将始终为整数,因为它将跳过小数值。
如果你想要精确的浮点输出,试试这个:
>>>float(10)/3
>>>3.3333333333333335
任何值都应该是浮点数。
答案 2 :(得分:0)
你在这里犯错的是,你让它相信分裂的操作数是整数(在分裂期间)。
我确定你想要两个整数。你可以做以下事情:
在分割期间使用float()。在这里,您不需要将Anzahl和spieler都转换为浮动。只需转换spieler:
q = anzahl / float(spieler)
** 2。使用 future 模块。那么你不需要在代码中改变任何东西。在代码的开头写下以下行:
from __future__ import division
答案 3 :(得分:0)
如果将整数除以整数,您将收到一个整数。整数是整数,没有小数点。
如果用浮点数除以浮点数/整数,你将收到一个浮点数。 float是一个整数,包括小数点。
当您进行操作时,将spieler
更改为浮动。这可以通过float(spieler)
完成。
您的代码如下所示:
def spiel():
anzahl=int(raw_input("Anzahl der Spieler"))
float(spieler)=int(raw_input("Jeder wievielte spielt"))
if anzahl>0 and spieler>0:
#Quotient berechnen
q=anzahl/spieler
print '%.2f'%q