用 f 字符串舍入浮点数 [重复]

Posted

技术标签:

【中文标题】用 f 字符串舍入浮点数 [重复]【英文标题】:Rounding floats with f-string [duplicate] 【发布时间】:2018-02-14 04:05:43 【问题描述】:

使用 %-formatting,我可以指定字符串中的小数位数:

x = 3.14159265
print('pi = %0.2f' %x)

这会给我:

pi = 3.14

有没有办法在 Python 3.6 中使用 f-strings 来做到这一点?

【问题讨论】:

要清楚,您只是在询问最近舍入(如%f 所做的),而不是向下舍入/截断(如int())、向上舍入、舍入-向零,向无穷大或任何其他方案?如果只是四舍五入,那么这是重复的(抄送:@vaultah) 但无论哪种方式,这个标题 "Rounding floats with f-string" 和标记 python-3.6 更好、更清晰、措辞、清晰和更好的搜索关键字覆盖或重复比“将浮点数转换为一定精度,然后复制到字符串”。所以我们绝对应该离开这个展台,关闭但不删除(抄送:@vaultah) 【参考方案1】:

这个怎么样

x = 3.14159265
print(f'pi = x:.2f')

Docs for f-strings

【讨论】:

是否需要.2f?它似乎只适用于.2 @101 是的,这是必要的。使用.2 不会给你预期的价值!它将使用科学记数法向下舍入到总共 2 位,并且仅适用于浮点数而不是整数

以上是关于用 f 字符串舍入浮点数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

舍入浮点数的源代码

如何在PHP中舍入浮点数?

使用 0.5 规则舍入浮点数的方法

舍入浮点数的最短函数c ++

为什么舍入浮点数1.4999999999999999产生2?

C中的printf如何对浮点数进行舍入?