![](https://i-blog.csdnimg.cn/blog_migrate/e33070c1e5f89f528f6f473eb4162095.jpeg)
decimal 模块decimal意思为十进制,这个模块提供了十进制浮点运算支持,本篇文章主要给大家讲解Python decimal模块的使用,需要的朋友可以参考下
Python decimal 模块
- Python中的浮点数默认精度是15位。
- Decimal对象可以表示任意精度的浮点数。
getcontext函数
- 用于获取当前的context环境,可以设置精度、舍入模式等参数。
1 2 | #在context中设置小数的精度 decimal.getcontext().prec = 100 |
因为通过浮点数初始化Decimal类型的变量会导致精度的丢失
1 2 | # 浮点数的初始化 a = decimal.Decimal( '3.14159265' ) |
setcontext函数
decimal.ROUND_HALF_UP 对浮点数四舍五入
1 2 3 4 5 6 7 8 9 10 11 | import decimal x = decimal.Decimal( '1.23456789' ) context = decimal.Context(prec = 4 ,rounding = decimal.ROUND_HALF_UP) decimal.setcontext(context) y1 = x y2 = x * 2 print ( "y1" ,y1) print ( "y2" ,y2) >>>y1 1.23456789 >>>y2 2.469 |
localcontext函数
- 用于创建一个新的context环境,可以在该环境中设置精度、舍入模式等参数,不会影响全局的context环境。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import decimal x = decimal.Decimal( '1.23456789' ) context0 = decimal.Context(prec = 9 ,rounding = decimal.ROUND_HALF_UP) decimal.setcontext(context0) y1 = x * 2 print ( "y1" ,y1) with decimal.localcontext() as context: context.prec = 4 context.rounding = decimal.ROUND_HALF_UP y2 = x * 2 print ( "y2" ,y2) >>>y1 2.46913578 >>>y2 2.469 >>> >>> |
到此这篇关于Python decimal模块的使用的文章就介绍到这了,希望对你有所帮助。
转自:微点阅读 https://www.weidianyuedu.com