iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中小数点后的位数问题怎么解决
  • 791
分享到

python中小数点后的位数问题怎么解决

2023-07-06 12:07:05 791人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python中小数点后的位数问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中小数点后的位数问题怎么解决”文章能帮助大家解决问题。python中小数点后的位数

这篇文章主要介绍“python中小数点后的位数问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中小数点后的位数问题怎么解决”文章能帮助大家解决问题。

    python中小数点后的位数

    第一种方法
    a = 8.8888

    使用round 函数

    b = round(a,2) # 保留小数点后两位小数,会四舍五入b 就等于8.89
    第二种方法
    b= "%.2f"%a # 也会四舍五入
    第三种方法
    ret1 = Decimal("88.001").quantize(Decimal("0.00"))print(ret1)# 满5进1的写法from decimal import Decimal, ROUND_HALF_UPres = Decimal(str(11.565)).quantize(Decimal("0.00"),ROUND_HALF_UP)

    python小数点位数控制

    利用python内置的round()函数

    round()如果只有一个数作为参数,不指定位数的时候,返回的是一个整数,而且是最靠近的整数

    一般情况是使用四舍五入的规则,但是碰到舍入的后一位为5的情况,如果要取舍的位数前的数是偶数,则直接舍弃,如果奇数这向上取舍

    正常的取舍:

    python中小数点后的位数问题怎么解决

    舍入的后一位为5的情况:

    python中小数点后的位数问题怎么解决

    利用格式化方法

    特殊情况需要注意的和 round 方法一样

    python中小数点后的位数问题怎么解决

    python中小数点后的位数问题怎么解决

    利用math模块里ceil和floor方法
    • math模块的ceil(x):取大于或者等于x的最小整数

    • math模块的floor(x):取小于或者等于x的最大整数

    python中小数点后的位数问题怎么解决

    超过17位的精度分析

    python默认的是17位精度,也就是小数点后16位,但是这里有一个问题,就是当我们的计算需要使用更高的精度(超过16位小数)的时候该怎么做呢?

    高精度使用decimal模块,配合getcontext

    decimal 模块默认精度是17位,可以通过修改 getcontext().prec 修改精度的值

    python中小数点后的位数问题怎么解决

    python中小数点后的位数问题怎么解决

    关于“python中小数点后的位数问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: python中小数点后的位数问题怎么解决

    本文链接: https://www.lsjlt.com/news/358203.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作