为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中格式化浮点数而不尾随零

在Python中格式化浮点数而不尾随零

qq_笑_17 2019-07-15 16:49:29
在Python中格式化浮点数而不尾随零如何格式化浮点数,使其不包含尾随零?换句话说,我希望得到的字符串尽可能短。例如:3 -> "3"3. -> "3"3.0 -> "3"3.1 -> "3.1"3.14 -> "3.14"3.140 -> "3.14"
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

我,我会('%f' % x).rstrip('0').rstrip('.')-保证定点格式,而不是科学符号等等-是的,不像以前那么流畅和优雅。%g,但是,它有效(而且我不知道如何强制%g从不使用科学符号;-)


查看完整回答
反对 回复 2019-07-15
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

试试看最简单、也可能是最有效的方法如何?方法正常化()移除所有最右边的尾随零。

from decimal import Decimalprint (Decimal('0.001000').normalize())# Result: 0.001

工作于Python 2Python 3.

-更新-

正如@BobStein-Visibone所指出的,唯一的问题是,像10,100,1000这样的数字.将以指数表示形式显示。可以很容易地使用以下函数来解决这个问题:

from decimal import Decimaldef format_float(f):
    d = Decimal(str(f));
    return d.quantize(Decimal(1)) if d == d.to_integral() else d.normalize()


查看完整回答
反对 回复 2019-07-15
  • 3 回答
  • 0 关注
  • 689 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信