问题描述
如何格式化浮点数以使其不包含尾随零?换句话说,我希望生成的字符串尽可能短.
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;-).