python - 如何打印没有指数形式/科学记数法的十进制数?
问题描述
要打印没有指数形式的浮点数,我们可以这样写:
print('%f' % (10**-8))
但这通常由于精度误差而显示为零。相反,我们可以使用Decimal.decimal(float)
精确地打印浮点数。但这会以指数格式打印数字,即10e-10
. 而且我似乎无法将它们组合起来,因为我不知道如何Decimal
像'%f'
以前格式化浮点数那样格式化。
所以我的问题是,如何按照我想要的方式完成这件事?
注意:此处使用的幂 -8 只是一个示例。功率可以是可变的。另外,我想知道我是否可以高精度打印两个数字的差异。
解决方案
from decimal import Decimal
print('%.8f' % Decimal(10**-8))
输出:
0.00000001
要动态指定小数位,您可以使用以下命令:
from decimal import Decimal
power = 10
print('%.*f' % (power, Decimal(10**-power)))
印刷:
0.0000000001
推荐阅读
- discord - 如何让我的不和谐机器人删除它自己之前发送的消息?
- spring - Client authentication using certificates in spring without spring boot
- ios - Callkit - 如果从后台开始通话,则没有音频
- javascript - 链接未在 sharex 自定义上传器上发回
- linux - 我想以 6 秒的固定间隔打开多个 elink
- arrays - 合并分区/又名压缩算法
- javascript - 为每个用户只保留 100 条新记录,删除 firebase 中的旧记录
- node.js - passport-azure-ad 始终重定向到 failureRedirect 但未显示错误(nodejs)
- angular - 如何使用 Angular Routing 在 Angular 中管理多个文章帖子?
- docker - docker:拉取图像时出现“第一条记录看起来不像 TLS 握手”错误