前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python知识点100篇系列(11)-浮点数四舍五入的两种方法

python知识点100篇系列(11)-浮点数四舍五入的两种方法

原创
作者头像
JQ实验室
发布2024-09-25 09:59:37
1070
发布2024-09-25 09:59:37
举报
文章被收录于专栏:实用技术

Python 的四舍五入主要有两种方式;

  • 内置函数 round(number, ndigits)
  • 使用 Decimal

先说结论:

如果是对金额的四舍五入,不建议使用内置函数,原因如下:

使用round方法:

python3中的round函数对浮点数进行四舍五入的规则:

  • 参数ndigits 不为 0 的情况如果保留位数的后一位小于等于 4,则舍去

如果保留位数的后一位等于 5,且该位数后面没有数字,则不进位 如果保留位数的最后一位等于 5,且该位数后面有数字,则进位 如果保留位数的最后一位大于等于 6 ,则进位

在这里插入图片描述
在这里插入图片描述
  • 参数ndigits 为 0 或 None 的情况如果保留位数的后一位小于等于 4,则舍去 如果保留位数的后一位等于 5,且后面没有数字,则取最近的偶数 如果保留位数的后一位等于 5,且后面有数字,则进位 如果保留位数的最后一位大于等于 6 ,则进位
在这里插入图片描述
在这里插入图片描述
使用Decimal:

使用Decimal,必须先把小数转换成字符串,这样才可以精确的表示浮点数;

代码语言:python
代码运行次数:0
复制
def round2():
    import decimal
    # 修改舍入方式为四舍五入
    decimal.getcontext().rounding = "ROUND_HALF_UP"

    x = "0.525"
    x1 = decimal.Decimal(x).quantize(decimal.Decimal("0.00"))
    print(f"{x} 的四舍五入为 {x1}")
    y = "5.5"
    y1 = decimal.Decimal(y).quantize(decimal.Decimal("0"))
    print(f"{y} 的四舍五入为 {y1}")

round2()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用round方法:
  • 使用Decimal:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档