如何在Python中将浮点数293.4662543转为293.47?
我该怎么把得到的浮点数结果缩短呢?我只需要小数点后面有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
类型。