在python中打印格式化的任意精度小数
Python 的任意精度小数很可爱,但我似乎找不到一种方法以良好的格式打印它们。例如,如果我计算以下表达式:
>>> pow(2,70) -2
1180591620717411303422L
它以 2 结尾,就像它应该的那样。但是,如果我尝试将其格式化为显示两位小数,则会四舍五入为 2^70,因为浮点数不是很精确。
>>> print "{0:.2f}".format(pow(2,70) -2)
1180591620717411303424.00
有没有办法以我想要的格式打印而不丢失精度?
(并且不使用任何非标准模块,例如 NumPy)
Python's arbitrary precision decimals are lovely, but I can't seem to find a way to print them in a nicely formatted way. For example, if I compute the following expression:
>>> pow(2,70) -2
1180591620717411303422L
it ends in a 2, like it should. However, if I try to format it to show two decimal places, it gets rounded to 2^70 because floats aren't very precise.
>>> print "{0:.2f}".format(pow(2,70) -2)
1180591620717411303424.00
Is there a way to print with the formatting I want without losing precision?
(and without using any non-standard modules such as NumPy)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这对我有用:
来自 decimal 模块文档:
This works for me:
From the decimal module documentation: