我正在开展一个必须接受用户输入并进行计算的项目。
我的目标是打印显示为
告知客户他们今天节省了0.71
不
告知客户他们今天保存了0.7105000000000001
是否有什么东西可以放入同一行代码中使用print函数进行舍入?或者我必须修改每个变量。
我可以根据要求发布我的代码。
答案 0 :(得分:1)
您可以使用内置round()
函数和浮点格式:
>>> print "{0:0.2f}".format(round(x, 2))
0.71
一些注释:
{0.2f}
会将浮点数格式化为2位小数。round(x, 2)
将向上舍入到小数点后两位。 旁注: round()
是非常必要的IHMO,如果你想在“显示”之前“舍入”数字。这真的取决于你在做什么!
答案 1 :(得分:1)
round()返回浮点值数字舍入到小数点后的数字位数。第一个参数是数字,第二个参数是精度
no = 0.7105000000000001
print round(no, 2)
第二个解决方案:
print "%.2f" % 0.7105000000000001
答案 2 :(得分:0)
使用decimal代替round()
from decimal import *
print(round(8.494,2)) # 8.49
print(round(8.495,2)) # 8.49
print(round(8.496,2)) # 8.5
print(Decimal('8.494').quantize(Decimal('.01'), rounding=ROUND_HALF_UP)) #8.49
print(Decimal('8.495').quantize(Decimal('.01'), rounding=ROUND_HALF_UP)) #8.50
print(Decimal('8.496').quantize(Decimal('.01'), rounding=ROUND_HALF_UP)) #8.50