今天一个python程序需要用到四舍五入,搜到了round函数,相关文章有很多介绍:
https://www.python100.com/html/V9K2FD065M2X.html
https://www.python100.com/html/92846.html
但我用的时候,还是出现了些问题,比如:
qianneng_renshu=round(23/3,0) #取总人数的三分之一,小数进行四舍五入处理
本以为这样小数位为0,即只有整数位,但结果不是这样的,如果只要整数位,那么应该这么写:
qianneng_renshu=round(23/3) #取总人数的三分之一,小数进行四舍五入处理
至于为什么是这样,还不清楚,但这两者是有区别的。
2024年2月24号补充:
通过查阅资料发现,以上的方法还是很有问题的,具体参考文章:https://zhuanlan.zhihu.com/p/115431517
文章内容较多,但具体到使用环节,用以下代码即可实现:
from decimal import Decimal
##代码解释和来源:https://zhuanlan.zhihu.com/p/115431517
a = "1.345"
#保留几位小数由像第二个括号中的几位小数决定,即保留两位小数,精确到0.01
#如果想要四舍五入保留整数,那么第二个括号中就应该为"1."
a_t = Decimal(a).quantize(Decimal("0.01"), rounding = "ROUND_HALF_UP")
print(a_t)
a = "2.5"
a_t = Decimal(a).quantize(Decimal("1."), rounding = "ROUND_HALF_UP")
print(a_t)