我正在使用原子钟,其频率大约为10 MHz,精度超过18位。因此,对于某些Python应用程序,我需要减去列表的平均值并将其称为偏移量,以便我可以将numpy的float64用于此列表的元素。
我的问题如下:说我有这个号码:
d = decimal.Decimal('12345678999999.555544333221')
我希望能够用这样一个函数对这个数字进行舍入:
large_round(d,5)
并得到结果:
12345000000000.000000000000
所以我希望从最左边开始舍入,而不是从小数点开始。
我的解决方案:我可以,比如说,玩游戏并将此数字转换为字符串,然后查找小数点,然后计算我左边有多少位数,然后将其添加到标准Python { {1}}函数的第二个参数。
但我总是在Python中找到我想象的所有功能。那么,是否有一种Pythonic,友好的方式来做我正在寻找的东西?
答案 0 :(得分:1)
d2 = decimal.Context(prec=5).create_decimal(d)
创建具有所需精度的新上下文,并使用该上下文从d
创建新的Decimal。