如何在Python中将浮点数293.4662543转为293.47?

36 投票
8 回答
127810 浏览
提问于 2025-04-16 05:22

我该怎么把得到的浮点数结果缩短呢?我只需要小数点后面有2位数字。抱歉,我真的不知道怎么用英语更好地解释这个...

谢谢

8 个回答

10

一种方法:

>>> number = 1
>>> '{:.2f}'.format(number) #1.00
>>> '{:.3f}'.format(number) #1.000

第二种方法:

>>> '%.2f' % number #1.00
>>> '%.3f' % number #1.000

可以查看“格式化 Python”相关内容

32

如果你想要一个数字,可以使用 round() 这个函数:

>>> round(12.3456, 2)
12.35

(不过,关于 Decimal 类型,Michael 的回答值得点赞。)

如果你想要一个字符串:

>>> print "%.2f" % 12.34567
12.35
63

来自《浮点数指南》的Python 备忘单

"%.2f" % 1.2399 # returns "1.24"
"%.3f" % 1.2399 # returns "1.240"
"%.2f" % 1.2 # returns "1.20"

使用 round() 函数是不对的,因为浮点数是二进制小数,它们无法准确表示十进制数字。

如果你需要进行十进制数字的计算,应该使用decimal模块中的Decimal类型。

撰写回答