我在研究原子钟,那里的频率大约是10 MHz,精度超过18位。因此,对于某些Python应用程序,我需要减去列表的平均值并将其称为偏移量,这样我就可以对这个列表的元素使用numpy的float64。
我的问题是:假设我有这个号码:
d = decimal.Decimal('12345678999999.555544333221')我希望能够用这样的函数把这个数字相加:
large_round(d,5)并得到结果:
12345000000000.000000000000所以,我希望四舍五入是从最左边,而不是从小数点。
我的解决方案是:我可以玩游戏,把这个数字转换成字符串,然后查找小数点,然后计算左边有多少位数,然后将它添加到标准Python函数的第二个参数中。
但我总是在Python中为我所想象的一切找到函数。那么,有什么毕达通,友好的方式来做我想要的吗?
发布于 2016-12-01 18:28:48
d2 = decimal.Context(prec=5).create_decimal(d)使用所需的精度创建一个新的上下文,并使用该上下文从d创建一个新的Decimal。
https://stackoverflow.com/questions/40917750
复制相似问题