Python Scientific Notation精确归一化
我的目标是简单地将诸如“1.2”的字符串转换为科学记数法而不增加额外的精度。问题是我总是在输出结束时得到多余的0。
>>> input = "1.2"
>>> print '{:e}'.format(float(input))
1.200000e+00
我想弄清楚如何得到1.2e+00
。我意识到我可以在我的格式语句中指定精度,但我不想不必要地截断更长的字符串。我只是想压制训练0。
我尝试过使用Decimal.normalize(),它适用于所有情况,除非e< 2。
>>> print Decimal("1.2000e+4").normalize()
1.2E+4
>>> print Decimal("1.2000e+1").normalize()
12
所以这更好,除了我不想要12,我想要1.2e + 1。 :P
任何建议将不胜感激!
编辑:
为了澄清,输入值已经适当地舍入到预定长度,现在是未知的。我试图避免重新计算适当的格式精度。
基本上,我可以输入值“1.23”和“1234.56”,它应该是“1.23e + 0”和“1.23456e + 3”。
我可能只需要检查输入字符串的长度并使用它来手动指定精度,但我想检查并确保我没有遗漏可能阻止指数格式任意添加0的东西。
没有找到相关结果
已邀请:
3 个回复
眠皇
这将始终给出2位小数的精度。您想要的精确度必须由您自己决定。如果您在评论中需要该帖子的任何帮助。
朗排谎纷瘟
这不是最优雅的解决方案,但是任务开始时有点令人讨厌,并且完成了工作。
诞胃