[英]Why doesn't decimal.getcontext().prec=3 work for decimal.Decimal(1.234)
[英]Python decimal.Decimal - getcontext().prec setting and number of decimals in output
我想使用decimal.Decimal对转换后的数字字符串进行算术运算。 无论转换后的数字字符串有多少小数,我都希望返回有两位小数。
在这种特殊情况下,为什么两个小数精度给我一个小数返回,为什么三个小数精度给我我想要的返回(2 个小数 -> 2.15)
from decimal import *
getcontext().prec = 2
a = Decimal(x.replace(',','.'))
b = Decimal(y.replace(',','.'))
print(a), print(b), print(a-b)
>>> 2.60 0.45 2.2
getcontext().prec = 3
a = Decimal(x.replace(',','.'))
b = Decimal(y.replace(',','.'))
print(a, b, a-b)
>>> 2.60 0.45 2.15
getcontext().prec
设置Decimal lib 将用于返回任何计算数字的数字精度,即 prec = 2 将返回 2 位数字(first=2,second=2),在 prec = 3 中将显示三个数字(第一个 = 2,第二个 = 1,第三个 = 5)。
然而,这里有一个技巧。 当您创建 a 和 b 变量时,十进制使用您提供给它的数字的位数作为精度。 你可以看到在你的 IDLE 中只调用了 a 或 b。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.