格式化没有尾随零的浮点数

问题描述

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

How can I format a float so that it doesn't contain trailing zeros? In other words, I want the resulting string to be as short as possible.

例如:

3 -> "3"
3. -> "3"
3.0 -> "3"
3.1 -> "3.1"
3.14 -> "3.14"
3.140 -> "3.14"


解决方案

我,我会做 ('%f' % x).rstrip('0').rstrip('.') -- 保证定点格式而不是科学记数法等.是的,不像 %g 那样流畅和优雅,但是,它可以工作(我不知道如何强制 %g 永远不要使用科学记数法;-).

Me, I'd do ('%f' % x).rstrip('0').rstrip('.') -- guarantees fixed-point formatting rather than scientific notation, etc etc. Yeah, not as slick and elegant as %g, but, it works (and I don't know how to force %g to never use scientific notation;-).

相关文章