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