我想在数字前面加一个加号。我已经在使用格式说明符:
"{0:+03f}".format(x)我也听说过这两件事,但我不知道如何使用它们:
"%+d" or "%+f"我的第一个问题是,后面的数字格式是浮点数类型。
例如,我正在编制一个计算二次函数的小程序,但我对这样的输出不满意:
f(x) = 2x^2+2.000x-4.000000那些零让它看起来怪怪的。
如果不是在上面,是否有任何解决方案来消除零,当没有什么,但只有零后的点?
发布于 2018-12-06 08:40:47
也许你要找的就是%g?
>>> '%+g' % 2.
'+2'
>>> '%+g' % 2.1
'+2.1'
>>> '%+g' % 2.10001
'+2.10001'%g的确切定义如下:
一般格式。对于给定的精度p >= 1,这将数字舍入到p个有效数字,然后根据其大小以固定点格式或科学表示法格式化结果。 精确的规则如下:假设用表示类型'e‘和精度p-1格式化的结果将具有指数exp。然后,如果-4 <= exp < p,则用表示类型'f‘和精度p-1-exp对数字进行格式化.否则,数字将被格式化为表示类型'e‘和精度p-1。在这两种情况下,不重要的尾随零点都从意义中移除,如果后面没有剩余的数字,小数点也会被移除。 无论精度如何,正负无穷大、正零和负零以及nans分别被格式化为inf、-inf、0、-0和nan。 将0的精度视为等于1的精度,默认的精度为6。
(来源.)
与format()类似
>>> '{0:+g}'.format(2.)
'+2'
>>> '{0:+g}'.format(2.1)
'+2.1'
>>> '{0:+g}'.format(2.1001)
'+2.1001'发布于 2018-12-06 08:51:24
%+g工作,但使用(非常)老式格式。Python已经发展到提供了2种现代格式方法:
新样式格式:
>>> "{0:+g}".format(2.00001)
'+2.00001'
>>> "{0:+g}".format(-2.00001)
'-2.00001'
>>> "{0:+g}".format(2)
'+2'对于python 3.6+ f-字符串:
>>> value = 2
>>> f"{value:+g}"
'+2'
>>> value = -2.00001
>>> f"{value:+g}"
'-2.00001'
>>> value = 2.00001
>>> f"{value:+g}"
'+2.00001'https://stackoverflow.com/questions/53647456
复制相似问题