【问题标题】:How to calculate decimals with 8 places?如何计算8位小数?
【发布时间】:2021-03-18 05:01:34
【问题描述】:

我有这个号码:

value='0.00000036'

作为字符串 我想计算 value*2 或 value+value (0.00000072) 是多少,显然这不是一件容易的事。 我尝试使用:

decimal.Decimal(value)

它让我明白了:

Decimal('3.6E-7')

当我使用更高的数字 (0.0000036) 时一切正常,但对我来说没用。

【问题讨论】:

标签: python


【解决方案1】:
value='0.00000036'
decimal_value = decimal.Decimal(value)
print(format(decimal_value, 'f'))
0.00000036

如果你想将它乘以 2,就这样做吧:

value='0.00000036'
decimal_value = decimal.Decimal(value) * 2
print(format(decimal_value, 'f'))
0.00000072

【讨论】:

  • 它没有回答如何显示计算的值+值的问题。或 value * 2. 例外结果应为 0.00000072
  • 你试过将它乘以 2 吗?喜欢format(decimal_value * 2, 'f')
  • format(decimal_value * 2, 'f') 给我:ValueError: Unknown format code 'f' for object of type 'str'
  • 你需要乘以 2 个 Decimal 类型的变量,但不是 str 类型的变量
【解决方案2】:

只要这样做,它就会解决你压制科学记数法的问题。

import numpy as np
import decimal
value='0.00000036'
np.format_float_positional(decimal.Decimal(value), trim='-')

输出:'0.00000036'

【讨论】:

    【解决方案3】:

    尝试使用f 字符串。

    import decimal
    value='0.00000036'
    decimal_value = decimal.Decimal(value) * 2 # change * to + - / etc..
    print(f'{decimal_value:f}') # means convert to float
    

    输出:

    0.00000072
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 2015-03-08
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多