首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在正数前附加一个加号

问在正数前附加一个加号
EN

Stack Overflow用户
提问于 2018-12-06 08:36:43
回答 2查看 2.4K关注 0票数 4

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

代码语言:javascript
复制
"{0:+03f}".format(x)

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

代码语言:javascript
复制
"%+d" or "%+f"

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

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

代码语言:javascript
复制
f(x) =  2x^2+2.000x-4.000000

那些零让它看起来怪怪的。

如果不是在上面,是否有任何解决方案来消除零,当没有什么,但只有零后的点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-06 08:40:47

也许你要找的就是%g?

代码语言:javascript
复制
>>> '%+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()类似

代码语言:javascript
复制
>>> '{0:+g}'.format(2.)
'+2'
>>> '{0:+g}'.format(2.1)
'+2.1'
>>> '{0:+g}'.format(2.1001)
'+2.1001'
票数 8
EN

Stack Overflow用户

发布于 2018-12-06 08:51:24

%+g工作,但使用(非常)老式格式。Python已经发展到提供了2种现代格式方法:

新样式格式:

代码语言:javascript
复制
>>> "{0:+g}".format(2.00001)
'+2.00001'
>>> "{0:+g}".format(-2.00001)
'-2.00001'
>>> "{0:+g}".format(2)
'+2'

对于python 3.6+ f-字符串:

代码语言:javascript
复制
>>> value = 2
>>> f"{value:+g}"
'+2'
>>> value = -2.00001
>>> f"{value:+g}"
'-2.00001'
>>> value = 2.00001
>>> f"{value:+g}"
'+2.00001'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53647456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档