【问题标题】:Round float in Python [duplicate]Python中的圆形浮点数[重复]
【发布时间】:2018-04-29 10:11:54
【问题描述】:

我对 Python 中的浮点数有疑问...

我在一个变量中有这个:

i = 9.600000000000001

我会这样改造:

i = 9.60000

小数点后五个数字并四舍五入。

【问题讨论】:

  • 您要输出浮点数还是舍入值本身?对于后者,由于浮点数的性质,大多数值都无法实现。自行研究以了解原因。

标签: python python-3.x floating-point precision floating-accuracy


【解决方案1】:

你可以在round()函数中使用第二个参数。

i = 9.600000000000001
i = round(i, 5)
print("%.5f" % i)

将返回 9.60000。

【讨论】:

    【解决方案2】:
    >>> format(9.60000001,'.5f')                                                                                                            
    '9.60000'
    >>> 
    

    【讨论】:

    • 对不起,我只是想展示方法
    【解决方案3】:
    from decimal import *
    getcontext().prec = 6
    i = 9.600000000000001
    newI = Decimal(i)/1
    
    print(newI)
    

    返回 9.60000。但是,float(newI) 返回 9.6,这是正确的。真正的问题是您想要实际值,在这种情况下 9.60000 = 9.6,还是仅将 9.6 显示为 9.60000?在这种情况下,上述打印解决方案将助您一臂之力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      相关资源
      最近更新 更多