如何在python中显示小数点

时间:2016-08-11 19:49:53

标签: python python-2.7 floating-point

我正在尝试编写一个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,我做错了什么。

如果你能告诉我如何存储小数点之后的第一个小数点,那将是惊人的! 提前致谢

4 个答案:

答案 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)

你在这里犯错的是,你让它相信分裂的操作数是整数(在分裂期间)。

我确定你想要两个整数。你可以做以下事情:

  1. 在分割期间使用float()。在这里,您不需要将Anzahl和spieler都转换为浮动。只需转换spieler:

    q = anzahl / float(spieler)

  2. ** 2。使用 future 模块。那么你不需要在代码中改变任何东西。在代码的开头写下以下行:

    from __future__ import division
    
    1. 使用Python 3.在python 3中'/'表示你将非截断分区,'//'表示截断分区

答案 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