建设网站的申请信用卡分期付款,淘宝店铺首页装修,关键词调整排名软件,数字营销的概念decimal 模块#xff1a;decimal意思为十进制#xff0c;这个模块提供了十进制浮点运算支持1.可以传递给Decimal整型或者字符串参数#xff0c;但不能是浮点数据#xff0c;因为浮点数据本身就不准确。2.要从浮点数据转换为Decimal类型from decimal import *Decimal.from_f…decimal 模块decimal意思为十进制这个模块提供了十进制浮点运算支持1.可以传递给Decimal整型或者字符串参数但不能是浮点数据因为浮点数据本身就不准确。2.要从浮点数据转换为Decimal类型from decimal import *Decimal.from_float(12.222)# 结果为Decimal(12.2219999999999995310417943983338773250579833984375)3.通过设定有效数字限定结果样式from decimal import *getcontext().prec 6Decimal(1)/Decimal(7)# 结果为Decimal(0.142857)六个有效数字4.四舍五入保留几位小数from decimal import *Decimal(50.5679).quantize(Decimal(0.00))# 结果为Decimal(50.57)结果四舍五入保留了两位小数5.Decimal 结果转化为stringfrom decimal import *str(Decimal(3.40).quantize(Decimal(0.0)))# 结果为3.4字符串类型Python3中decimal处理计算精度问题示例#!/usr/bin/python3# coding:utf-8import decimalfrom decimal import Decimal, getcontextdef demo():取整问题ROUND_CEILING 总是趋向无穷大向上取整ROUND_DOWN 总是趋向0取整ROUND_FLOOR 总是趋向负无穷大向下取整ROUND_HALF_DOWN 如果最后一个有效数字大于或等于5则朝0反方向取整否则趋向0取整ROUND_HALF_EVEN 类似于ROUND_HALF_DOWN不过如果最后一个有效数字值为5则会检查前一位。偶数值会导致结果向下取整奇数值导致结果向上取整ROUND_HALF_UP 类似于ROUND_HALF_DOWN不过如果最后一位有效数字为5值会朝0的反方向取整ROUND_UP 朝0的反方向取整ROUND_05UP 如果最后一位是0或5则朝0的反方向取整否则向0取整# 1.常规计算getcontext().prec 9r1 Decimal(1) / Decimal(3)print(r1 , r1) # r1 0.333333333# 2.但是getcontext().prec会包含小数点前面的所有长度当前面长度有变化时并不能固定控制小数点后的位数r2 Decimal(10) / Decimal(3)print(r2 , r2) # r2 3.33333333# 3.想要固定控制小数点后面的位数则需要使用decimal.quantize(Decimal(0.00000000))注意不能超过getcontext().prec的位数r3 Decimal(1) / Decimal(3)print(r3 , r3.quantize(Decimal(0.00000000))) # r3 0.33333333r4 Decimal(10) / Decimal(3)print(r4 , r4.quantize(Decimal(0.00000000))) # r4 3.33333333r5 Decimal(10) / Decimal(str(1.5))print(r5 , r5.quantize(Decimal(0.00000000))) # r5 6.66666667# 4.向上取整getcontext().rounding getattr(decimal, ROUND_CEILING) # 总是趋向无穷大向上取整r6 Decimal(10) / Decimal(str(1.5)) # r6 6.66666667print(r6 , r6.quantize(Decimal(0.00000000)))r7 Decimal(10) / Decimal(3) # r7 3.33333334print(r7 , r7.quantize(Decimal(0.00000000)))# 5.向下取整getcontext().rounding getattr(decimal, ROUND_FLOOR) # 总是趋向无穷大向下取整r8 Decimal(10) / Decimal(str(1.5)) # r8 6.66666666print(r8 , r8.quantize(Decimal(0.00000000)))r9 Decimal(10) / Decimal(3) # r9 3.33333333print(r9 , r9.quantize(Decimal(0.00000000)))if __name__ __main__:demo()以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持。