python float转为decimal
2024-08-28 05:56:30
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',字符串类型
最新文章
- Tern Sercer Tineout
- wamp(win1064位家庭版+apache2.4.20+php5.5.37+mysql5.5.50)环境搭建
- linux命令学习使用记录
- EBS中使用java进行 JavaConcurrentProgram 请求获取参数
- Milk
- centos 6.5 安装jenkins
- MFC DLL中导出函数模板
- H5 Canvas vs. SVG
- H5游戏见缝插针开发
- MPP 一、Greenplum 集群安装
- Springboot+redis 整合
- docker 安装NexusRepository Manager
- react 和 seamless-immutable
- Android_Studio_Checkout_Github_Error";Cannot run program ";git.exe";:CreateProcess error = 2
- Redis环境配置和命令语句
- .NET Core 项目经验总结:项目结构介绍 (一)
- 网络编程之HttpClient类(转)
- 2018.10.15 bzoj3564: [SHOI2014]信号增幅仪(坐标处理+最小圆覆盖)
- linux_connect_mysql
- POJ 1904 King&#39;s Quest tarjan
热门文章
- Java快捷键与搜狗输入法快键的冲突
- opencv学习之路(18)、霍夫变换
- matlab的三维绘图和四维绘图
- python---02.while循环 格式化输出 运算符 编码
- topcoder srm 715 div1 -23
- ODAC(V9.5.15) 学习笔记(六)TOraSQL、TOraTable和TOraStoredProc
- [NOI1995]石子合并 四边形不等式优化
- 【做题】arc080_f-Prime Flip——转换、数论及匹配
- 编译 glibc-2.14 时出现的一个LD_LIBRARY_PATH不路径bug
- 用yarn代替cnpm,cnpm漏包有点严重