Python中decimal.Decimal类型和float类型的比较
Python decimal.Decimal和float类型比较
1,class 'decimal.Decimal' 转换成float类型
例如:
四色五入,保留两位小数 传入参数可以为字符串也可以为整数
num01 = Decimal(2.333).quantize(Decimal('0.00'))
此时 num01 类型为 'decimal.Decimal' ,需要转化成float类型在与浮点型作比较;
num01 = float(num01)
2,class 'decimal.Decimal' 转换成strt类型
num01 = str(Decimal(2.333).quantize(Decimal('0.00'))) num02 = str(float(2.33))
最后再做比较;
decimal报错:decimal.InvalidOperation: [<class ‘decimal.ConversionSyntax‘>]
from decimal import * sum_vol=0 sum_rev=0 sum_gp=0 list2=['5\n457.5\n363.4\n4\n1\n0.5\n-5,847.9', '900\n247.1\n-22.3\n800\n100\n24.7\n26.9'] for xx in list2[:]: x = xx.split('\n') x[0] = x[0].replace(',', '') x[3] = x[3].replace(',', '') x[4] = x[4].replace(',', '') # x[6] = x[6].replace(',', '') sum_vol += Decimal(x[-3]) sum_rev += Decimal(x[-2]) sum_gp += Decimal(x[-1]) print(sum_vol) print(sum_rev) print(sum_gp)
运行结果报错:
分析
有3个求和,只有sum_gp报错了,原来是有个逗号
只需加上x[6] = x[6].replace(’,’, ‘’),就不会报错了
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Jmeter通过OS进程取样器调用Python脚本实现参数互传
这篇文章主要介绍了Jmeter通过OS进程取样器调用Python脚本实现参数互传,描述在cmd中调用上面的Python脚本并传入两个参数展开主题,具有一定的参考价值,需要的小伙伴可以参考一下2022-03-03PyCharm中的terminal运行从PS修改成cmd方式
这篇文章主要介绍了PyCharm中的terminal运行从PS修改成cmd方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-06-06python Web开发你要理解的WSGI & uwsgi详解
这篇文章主要给大家介绍了关于python Web开发你一定要理解的WSGI & uwsgi的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧2018-08-08Tensorflow安装问题: Could not find a version that satisfies the
这篇文章主要介绍了Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-04-04python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
这篇文章主要介绍了python GUI库图形界面开发之PyQt5不规则窗口与显示GIF动画的详细方法与实例,需要的朋友可以参考下2020-03-03
最新评论