我在获得所需的值时遇到了一些麻烦。
以下“abc”字符串表示角度。“结果”字符串代表我正在寻找的值。
a = '199.1224'
result = '199.122400000000000'
b = '199.0362'
result = '199.036200000000010'
c = '-199.9591'
result = '-199.959100000000010'
我使用以下代码:
Decimal(float(a)).quantize(Decimal('.000000000000001'), rounding=ROUND_HALF_UP)
results in
a = 199.122399999999999
b = 199.036200000000008
c = -199.959100000000007
我不是数学天才,并且在 Decimal 模块中尝试了几乎所有可能的方法,但我似乎无法找到获得所需结果的正确方法。
作为一个糟糕的解决方法,我使用:
Decimal(float(a)).quantize(Decimal('.00000000000001'), rounding=ROUND_HALF_UP)
str(a)+'0'
所以用少一位小数进行量化,转换为字符串(无论如何都必须这样做)并添加一个零。这让我得到了具有数千个这些值的正确期望结果。但我想知道是否有正确的方法来四舍五入并以零结尾(不知道这个英文单词)。