首页 > 解决方案 > 在正数前附加一个加号

问题描述

我想在数字前附加一个加号。我已经在使用格式说明符:

"{0:+03f}".format(x)

我也听说过这两个,但我不知道如何使用它们:

"%+d" or "%+f"

我对第一个问题的问题是格式后的数字是浮点类型。

例如,我正在编写一个计算二次函数的小程序,但我对这样的输出不满意:

f(x) =  2x^2+2.000x-4.000000

那些零使它看起来很奇怪。

如果不在上面,是否有任何解决方案可以在什么都没有时摆脱零,但点后只有零?

标签: pythonpython-3.x

解决方案


也许%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'

推荐阅读