【Python】round函数四舍五⼊的坑
1、round()函数四舍五⼊
1print(round(10.4))      # ==>10python格式化输出format
2print(round(10.49))      # ==>10
3print(round(10.5))      # ==>10
4print(round(10.51))      # ==>11
5print(round(10.6))      # ==>11
6print('='*50)
7print(round(11.4))      # ==>11
8print(round(11.49))      # ==>11
9print(round(11.5))      # ==>12
10print(round(11.51))      # ==>12
11print(round(11.6))      # ==>12
输出结果:
10
10
10
11
11
==================================================
11
11
12
12
12
⼩结:
当个位为奇数,⼩数部分>=0.5⼊,其余为舍;
当个位为偶数,⼩数部分>0.5⼊,其余为舍。
2、使⽤decimal模块
1import decimal
2
3 x = 10.3456
4# Context函数,有很多参数,都有默认的值,我们做四舍五⼊时候,只需要改变两个参数的值来设
置python的context处理环境即可。 5# 参数1是prec参数,⽤来显⽰最终的数值位数,这个数值位数包含整数部分和⼩数部分。
6# 参数2是rounding参数,改为ROUND_HALF_UP作为四舍五⼊⽅式。
7# create_decimal函数,注意参数值是⼀个字符串,因此需要先将x转为字符串
8 x1=decimal.Context(prec=4,rounding=decimal.ROUND_HALF_UP).create_decimal(str(x))
9print(x1)
10print(type(x1))
输出结果:
10.35
<class 'decimal.Decimal'>
3、format()格式化输出
输出结果为字符类型的数字
1 x = 10.3456
2print(format(x,'0.1f'))        # ==>10.3
3print(format(x,'0.2f'))        # ==>10.3
4print(format(x,'0.3f'))        # ==>10.3
5print(type(format(x,'0.1f')))  # ==><class 'str'>
输出结果:
10.3
10.35
10.346
<class 'str'>
总结:
1、若对四舍五⼊的结果精度要求较⾼,建议使⽤decimal模块,不建议使⽤round();
2、若仅仅想格式化输出数据,format()⾜矣。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。