zoukankan      html  css  js  c++  java
  • python float转为decimal

    73.2413793103 ======= 73.2414
    <type 'float'> ======= <class 'decimal.Decimal'>

    当断言这两个值相等时,就出错了

    参考链接: https://www.cnblogs.com/xueweihan/p/5207959.html

    解决方案:1 转换为同一类型

    浮点数转为decimal(意思为十进制,python这个模块提供了十进制浮点运算支持)

    可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。

     1) 浮点转Decimal

    from decimal import * 

    a=7.133333333

    print type(a)====>float

    b=Decimal.from_float(a)

    print type(b)====>Decimal

    a-b<0.00001  ======>True

    简介

    decimal意思为十进制,这个模块提供了十进制浮点运算支持。

    常用方法

    1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。

    2.要从浮点数据转换为Decimal类型

    from decimal import * Decimal.from_float(12.222) # 结果为Decimal('12.2219999999999995310417943983338773250579833984375')

    3.通过设定有效数字,限定结果样式:

    from decimal import * getcontext().prec = 6 Decimal(1)/Decimal(7) # 结果为Decimal('0.142857'),六个有效数字

    4.四舍五入,保留几位小数

    from decimal import * Decimal('50.5679').quantize(Decimal('0.00')) # 结果为Decimal('50.57'),结果四舍五入保留了两位小数

    5.Decimal 结果转化为string

    from decimal import * str(Decimal('3.40').quantize(Decimal('0.0'))) # 结果为'3.40',字符串类型
  • 相关阅读:
    dedecms中如何去掉文章页面的广告
    织梦新建顶级栏目打不开,解决办法
    织梦dede模板中广告的去除方法?
    php 转码
    安卓插件
    计时器的实现
    json剥离
    安卓解析json
    安卓 读取网页源码
    java不用jni,也可以获得当前系统性能信息
  • 原文地址:https://www.cnblogs.com/yoyoma0355/p/9598094.html
Copyright © 2011-2022 走看看