Python中输出小数精度怎样实现,有哪些方法
Admin 2022-08-23 群英技术资讯 789 次浏览
这篇文章主要讲解了“Python中输出小数精度怎样实现,有哪些方法”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。将精度高的浮点数转换成精度低的浮点数。
round()不是简单的四舍五入的处理方式。
>>> round(2.5) 2 >>> round(1.5) 2 >>> round(2.675) 3 >>> round(2.675, 2) 2.67
round()如果只有一个数作为参数,不指定位数的时候,返回的是一个整数,而且是最靠近的整数(这点上类似四舍五入)。但是当出现.5的时候,两边的距离都一样,round()取靠近的偶数2。
当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的这样情况,如果要取舍的位数前的小树是奇数,则直接舍弃,如果偶数这向上取舍。
看下面的示例:
>>> round(2.635, 2) 2.63 >>> round(2.645, 2) 2.65 >>> round(2.655, 2) 2.65 >>> round(2.665, 2) 2.67 >>> round(2.675, 2) 2.67
效果和round()是一样的。
>>> a = ("%.2f" % 2.635)
>>> a
'2.63'
>>> a = ("%.2f" % 2.645)
>>> a
'2.65'
>>> a = int(2.5)
>>> a
2
python默认的是17位小数的精度,但是这里有一个问题,就是当我们的计算需要使用更高的精度(超过17位小数)的时候该怎么做呢?
>>> a = "%.30f" % (1/3) >>> a '0.333333333333333314829616256247'
可以显示,但是不准确,后面的数字往往没有意义。
>>> from decimal import *
>>> print(getcontext())
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999,
capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero,
Overflow])
>>> getcontext().prec = 50
>>> b = Decimal(1)/Decimal(3)
>>> b
Decimal('0.33333333333333333333333333333333333333333333333333')
>>> c = Decimal(1)/Decimal(17)
>>> c
Decimal('0.058823529411764705882352941176470588235294117647059')
>>> float(c)
0.058823529411764705
默认的context的精度是28位,可以设置为50位甚至更高,都可以。这样在分析复杂的浮点数的时候,可以有更高的自己可以控制的精度。
其实可以留意下context里面的这rounding=ROUND_HALF_EVEN参数ROUND_HALF_EVEN, 当half的时候,靠近even.
既然说到小数,就必然要说到整数。一般取整会用到这些函数:
这个不说了,前面已经讲过了。一定要注意它不是简单的四舍五入,而是ROUND_HALF_EVEN的策略。
取大于或者等于x的最小整数。
去小于或者等于x的最大整数。
>>> from math import ceil, floor >>> round(2.5) 2 >>> ceil(2.5) 3 >>> floor(2.5) 2 >>> round(2.3) 2 >>> ceil(2.3) 3 >>> floor(2.3) 2 >>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了python数字图像处理使用skimage读取显示与保存图片示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
Python临时文件的用处是什么?怎样创建和使用?一些朋友对于Python临时文件不是很了解,这篇文章就给大家分享一下关于Python临时文件的使用示例,感兴趣的朋友可以参考。
这篇文章主要介绍了Python中的简写操作(for、if简写、匿名函数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
本文主要给大家介绍OpenCV中实现图像梯度的方法,本文有具体示例代码及解释,有这方面学习需要的朋友可以参考,接下来跟随小编一起学习一下吧。
这篇文章主要为大家详细介绍了python中的一个小项目:利用pygame实现代码雨动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以尝试一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008