zoukankan      html  css  js  c++  java
  • python

    数据库中字段类型为bigint,值为1,除以100后读取出来,打印显示:Decimal('0.01')

    和数字0.01比较,断言不通过

    学习以下decimal相关知识:

    #1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。
    data = Decimal(1)  # 1
    data = Decimal(0.01)  # 0.01000000000000000020816681711721685132943093776702880859375
    
    #2.从浮点数据转换为Decimal类型
    data = Decimal.from_float(12.222)  # 12.2219999999999995310417943983338773250579833984375
    
    #3.限定5位有效数字
    getcontext().prec = 5
    data = 1/7  # 0.14285714285714285
    data = Decimal(1)/Decimal(7)  # 0.14286(四舍五入)
    data = Decimal(100)/Decimal(7)  # 14.286
    
    #4.四舍五入,保留2位小数
    data = Decimal('50.5679').quantize(Decimal('0.00'))  # 50.57
    data = Decimal(1/100).quantize(Decimal('0.00'))  # 0.01
    
    #5. Decimal转化为string类型
    data = str(Decimal('3.457').quantize(Decimal('0.00')))  # 3.46

    几种断言:

    self.assertEqual(0.01, Decimal(0.01))   # 通过
    self.assertEqual(0.01, Decimal('0.01'))  # 不通过
            
    self.assertEqual('0.0', '0.00')  # 不通过
            
    self.assertEqual('0.01', '0.01')  # 通过(字符串和字符串)
    self.assertEqual(0.01, 0.01)      # 通过(数字和数字)
    self.assertEqual(0.01, '0.01')    # 不通过(数字和字符串)

    以上为纯知识,未解决实际问题。。。

    最后,

    解决方案一:数据库中读取的数字不除以100,需断言比较的数字乘以100,可以解决

    解决方案二:换读取数据库方法,使用pandas,打印字典类型,可以解决

    解决方案三:转成字符串,因存在0.0,0.00这种,较麻烦,未尝试,理论上应该可以

    ps:

    使用pandas读取数据库:

    import pymysql  # 或import MySQLdb
    import pandas as pd
    
    
    def pdsql(sql):
        # 使用pandas操作数据库
        db = pymysql.connect('192.168.3.77', 'user', 'passwd', 'db_name', charset='utf8')
        res = pd.read_sql(sql, db)  # 以DataFrame方式读取数据库
    
        res = res.to_dict('records')
        print(res)  # 打印字典类型 [{'订单金额': 1.0,'下单时间': '2020-12-08 19:50:35'}]
        db.close()
        return res
  • 相关阅读:
    ADO.NET批量插入数据方法比较
    Thread was being aborted 分析与解决
    第三方刻录软件介绍
    ASP.NET登陆SQL Server数据库
    word 2010页眉页码从第三页开始设置
    误删除、误格式化后的灾难恢复方案
    Asp.Net4.0新特性概述
    ArcGIS Server的切图原理深入
    ArcGIS的缓存技术
    ArcGIS Server操作Mxd文件详细讲解
  • 原文地址:https://www.cnblogs.com/xiaochongc/p/14930675.html
Copyright © 2011-2022 走看看