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

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

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

开心每一天1111 2019-12-13 15:10:54
在Python中格式化浮点数而不尾随零如何格式化浮点数,使其不包含尾随零?换句话说,我希望得到的字符串尽可能短。例如:3 -> "3"3. -> "3"3.0 -> "3"3.1 -> "3.1"3.14 -> "3.14"3.140 -> "3.14"
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

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



查看完整回答
反对 回复 2019-12-14
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

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

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-12-14
  • 3 回答
  • 0 关注
  • 301 浏览
慕课专栏
更多

添加回答

举报

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