【问题标题】:get all decimal places after division除法后得到所有小数位
【发布时间】:2012-06-10 08:44:11
【问题描述】:

我必须用1/50000 进行计算。当我这样做时

float(1/50000)

在 python 中它只返回我0.0。如何在 python 中获得 powers 的实际值?我想得到2.5*10^(-5)

【问题讨论】:

    标签: python floating-point division


    【解决方案1】:
    In [2]: 1.0/50000
    Out[2]: 2e-05
    

    注意.0。它确保1.0 是一个浮点字面量,而不是一个整数。

    另一种写法如下:

    In [3]: float(1)/50000
    Out[3]: 2e-05
    

    你现在首先使用整数除法来计算1/50000。此除法的结果是整数0,然后将其转换为浮点值(0.0)。

    最后,请注意,您当前的代码将在 Python 3 中正常运行(float() 是多余的)。这是由于PEP 238

    【讨论】:

    • 1./50000 是真正需要的。
    【解决方案2】:

    使用 python 3.x

    >>> 1/50000
    2e-05
    

    或在 python 2.x 上

    >>> from __future__ import division
    

    【讨论】:

      【解决方案3】:

      使用1.0/50000float(1)/50000。按照您的操作方式,当您转换为浮点数时,除法已经完成,要获得额外的准确性为时已晚。

      【讨论】:

        【解决方案4】:

        输入参数必须是浮点数才能划分为浮点数:

        float(1) / float(50000)
        

        或者

        1./50000
        

        十进制将 1 转换为浮点数。如果输入值之一是浮点数,则除法运算也将变为浮点数。

        您所做的是将整数除以得到 0,然后将 0 转换为浮点数作为 '0.0'。

        【讨论】:

          【解决方案5】:

          只需将其中一个参数转换为 float

          >>> 1 / float(50000)
          2e-05
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-04-01
            • 1970-01-01
            • 1970-01-01
            • 2023-01-20
            • 1970-01-01
            • 2021-03-13
            相关资源
            最近更新 更多