首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3:从最左边舍入非常大的十进制数(十进制类型)

Python 3:从最左边舍入非常大的十进制数(十进制类型)
EN

Stack Overflow用户
提问于 2016-12-01 18:21:31
回答 1查看 242关注 0票数 0

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

我的问题是:假设我有这个号码:

代码语言:javascript
复制
d = decimal.Decimal('12345678999999.555544333221')

我希望能够用这样的函数把这个数字相加:

代码语言:javascript
复制
large_round(d,5)

并得到结果:

代码语言:javascript
复制
12345000000000.000000000000

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

我的解决方案是:我可以玩游戏,把这个数字转换成字符串,然后查找小数点,然后计算左边有多少位数,然后将它添加到标准Python函数的第二个参数中。

但我总是在Python中为我所想象的一切找到函数。那么,有什么毕达通,友好的方式来做我想要的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-01 18:28:48

代码语言:javascript
复制
d2 = decimal.Context(prec=5).create_decimal(d)

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40917750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档