zoukankan      html  css  js  c++  java
  • python decimal和fractions模块

    1.简介 

    默认,浮点数学缺乏精确性 

    decimal 模块提供了一个 Decimal 数据类型用于浮点数计算。相比内置的二进制浮点数实现 float这个类型有助于金融应用和其它需要精确十进制表达的场合,控制精度,控制舍入以适应法律或者规定要求,确保十进制数位精度,或者用户希望计算结果与手算相符的场合。Decimal 重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。 高精度使 Decimal 可以执行二进制浮点数无法进行的模运算和等值测试。 

    2.使用

    >>> from decimal import Decimal

    >>> Decimal('0.1') / Decimal('0.3')

    Decimal('0.3333333333333333333333333333')

     

    >>> from decimal import getcontext

    >>> getcontext().prec = 4 #设置全局精度

    >>> Decimal('0.1') / Decimal('0.3')

    Decimal('0.3333')    

     

     

     

    fractions

    >>> from fractions import Fraction

    >>> Fraction(16, -10)  #分子分母

    Fraction(-8, 5)

    >>> Fraction(123)   #分子

    Fraction(123, 1) 

    >>> Fraction('3/7')   #字符串分数

    Fraction(3, 7) 

    >>> Fraction('-.125')  #字符串浮点数

    Fraction(-1, 8) 

    >>> Fraction(2.25)  #浮点数

    Fraction(9, 4) 

    >>> from decimal import Decimal

    >>> Fraction(Decimal('1.1')) #Decimal

    Fraction(11, 10)

    >>> from fractions import Fraction

    >>> a = Fraction(1,2)

    >>> a

    Fraction(1, 2)

    >>> b = Fraction('1/3')

    >>> b

    Fraction(1, 3)

    >>> a + b

    Fraction(5, 6)

    >>> a - b

    Fraction(1, 6)

  • 相关阅读:
    网络编程【二】socket(套接字)初识
    网络编程【一】操作系统的发展史
    面向对象【十三】类的魔术方法
    面向对象【十二】包装和授权
    面向对象【十一】类内置的attr属性
    面向对象【十】反射
    openwrt 编译错误
    修改openwrt 终端登录欢迎界面
    openwrt quilt 使用
    openwrt luci 入门介绍
  • 原文地址:https://www.cnblogs.com/godiness/p/4809413.html
Copyright © 2011-2022 走看看