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

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

如何格式化浮点数,使其不包含尾随零?换句话说,我希望得到的字符串尽可能短。


例如:


3 -> "3"

3. -> "3"

3.0 -> "3"

3.1 -> "3.1"

3.14 -> "3.14"

3.140 -> "3.14"



开心每一天1111
浏览 302回答 3
3回答

qq_花开花谢_0

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

天涯尽头无女友

试试看最简单、也可能是最有效的方法如何?方法正常化()移除所有最右边的尾随零。from decimal import Decimalprint (Decimal('0.001000').normalize())# Result: 0.001工作于Python 2和Python 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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python