如何使用Python对浮点数进行四舍五入?
在Python中,我们可以使用内置的round()函数对浮点数进行四舍五入。该函数有两种用法,一种是只传入一个参数,四舍五入到整数,另一种是传入两个参数,第二个参数指定要保留的小数位数。
阅读更多:Python 教程
四舍五入到整数
对于只需要将数值四舍五入到整数的情况,可直接使用round()函数。
num = 3.6
rounded_num = round(num)
print(rounded_num) # 4
在这个例子中,我们将3.6传给round()函数,该函数将其四舍五入到整数4,并将结果存储在rounded_num变量中。
除了正数,round()函数还可以将负数四舍五入到最近的整数,而不是向零舍入。
num = -3.6
rounded_num = round(num)
print(rounded_num) # -4
四舍五入到指定小数位数
如果要将浮点数四舍五入到指定小数位数,则需要在调用round()函数时传递第二个参数,该参数指定要保留的小数位数。
num = 3.14159
rounded_num = round(num, 2)
print(rounded_num) # 3.14
在这个例子中,我们将保留两位小数,即将3.14159四舍五入到3.14,并将结果存储在rounded_num变量中。
需要注意的是,指定保留小数位数时,round()函数的四舍五入规则仍然适用。例如:
num = 3.145
rounded_num = round(num, 2)
print(rounded_num) # 3.14
在这个例子中,由于3.145比3.14更接近3.15,以传递给round()函数的精度为基础,该函数将3.145四舍五入到3.14而不是3.15。
银行家舍入
在处理小数时,银行家舍入是一种常用的技术。这种技术可以使得四舍六入,五部分有时舍去,有时进位。在Python中,可以通过decimal模块中的getcontext()函数来设置银行家舍入模式。
from decimal import Decimal, ROUND_HALF_EVEN
getcontext().rounding = ROUND_HALF_EVEN
num = Decimal('3.145')
rounded_num = round(num, 2)
print(rounded_num) # 3.14
在这个例子中,我们从decimal模块导入Decimal和ROUND_HALF_EVEN常量。然后,使用getcontext()函数将rounding属性设置为ROUND_HALF_EVEN,这是银行家舍入的模式。最后,我们将要四舍五入的数字3.145转换为Decimal类型,并将保留小数位数设置为2。结果,该数字被舍去到3.14。
结论
在Python中,我们可以使用内置的round()函数对浮点数进行四舍五入。要将数值四舍五入到整数,只需调用round()函数,不需要传递第二个参数。要将数字四舍五入到指定小数位数,请将要舍入的数字和保留的小数位数传递给round()函数。在处理小数时,银行家舍入是一种常用的技术。我们可以使用decimal模块中的getcontext()函数来设置银行家舍入模式。