Python 3:从最左边

时间:2016-12-01 18:21:32

标签: python python-3.x decimal rounding

我正在使用原子钟,其频率大约为10 MHz,精度超过18位。因此,对于某些Python应用程序,我需要减去列表的平均值并将其称为偏移量,以便我可以将numpy的float64用于此列表的元素。

我的问题如下:说我有这个号码:

d = decimal.Decimal('12345678999999.555544333221')

我希望能够用这样一个函数对这个数字进行舍入:

large_round(d,5)

并得到结果:

12345000000000.000000000000

所以我希望从最左边开始舍入,而不是从小数点开始。

我的解决方案:我可以,比如说,玩游戏并将此数字转换为字符串,然后查找小数点,然后计算我左边有多少位数,然后将其添加到标准Python { {1}}函数的第二个参数。

但我总是在Python中找到我想象的所有功能。那么,是否有一种Pythonic,友好的方式来做我正在寻找的东西?

1 个答案:

答案 0 :(得分:1)

d2 = decimal.Context(prec=5).create_decimal(d)

创建具有所需精度的新上下文,并使用该上下文从d创建新的Decimal。