python float转为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',字符串类型
python float转为decimal的更多相关文章
- python float运算时存在浮点误差,结果小数点带.00002及解决方法
背景: 返回一个json字符串,result结果里面嵌套多个内容一样,只有具体数据不一样的列表[字典],现在需要从里面取指定的key值,来计算最后的总额. 原来使用的类型,float 通过取到json ...
- SQL Server的小数数值类型(float 和 decimal)用法
在SQL Server中,小数数值实际上只有两种数据类型:float 和 decimal.double precision 整体是数据类型,等价于 float(53),real等价于float(24) ...
- 什么时候需要使用Double? double、float、decimal的区别
原文:什么时候需要使用Double? double.float.decimal的区别 float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double: ...
- TypeError: unsupported operand type(s) for +: 'float' and 'decimal.Decimal'
TypeError: unsupported operand type(s) for +: 'float' and 'decimal.Decimal' 浮点型和双精度类型 相加报错 from deci ...
- Python float() 函数
Python float() 函数 Python 内置函数 描述 float() 函数用于将整数和字符串转换成浮点数. 语法 float()方法语法: class float([x]) 参数 x - ...
- SQL Server 小数类型(float 和 decimal)
在SQL Server中,实际上小数数值只有两种数据类型:float 和 decimal,分别是近似数值和精确数值.其他小数类型,都可以使用float和decimal来替代,例如,双精度(double ...
- 将python图片转为二进制文本的实例
https://www.jb51.net/article/155342.htm 写在最前面: 我在研究机器学习的过程中,给的数据集是手写数字图片被处理后的由0,1表达的txt文件,今天写一写关于图片转 ...
- ubuntu下把python脚本转为二进制字节码文件
ubuntu下把python脚本转为二进制字节码文件 听语音 原创 | 浏览:354 | 更新:2017-12-22 14:48 1 2 3 4 5 6 7 分步阅读 自己拥有个几个python脚本文 ...
- MySQL数字类型int与tinyint、float与decimal如何选择
最近在准备给开发做一个mysql数据库开发规范方面培训,一步一步来,结合在生产环境发现的数据库方面的问题,从几个常用的数据类型说起. int.tinyint与bigint 它们都是(精确)整型数据类型 ...
随机推荐
- 批处理:根据进程名称查询进程,如果有进程就输出up没有就输出donw
需求:windows系统上 根据进程名称查询进程,如果有进程就输出 up ,没有就输出 donw. ::Final interpretation is owned by chenglee ::@e ...
- mtr 命令
mtr命令的使用: -r --report 以报告的方式发布监测的结果 -s 30 指定发送包的大小 这个随意 按照自己的需求 -i 10 设置icmp协议返回包的时间 -n no- ...
- 【python35.2--图形用户界面EasyGui】
一.猜字游戏 #猜字游戏(从1到10) import easygui as g import random g.msgbox('欢迎进入探险之路!') screct = random.randint( ...
- 01 Hello World!
from tkinter import Label#获取组件对象 widget=Label(None,text='Hello GUI world!')#生成 widget.pack()#布置 widg ...
- 再谈 tp的 实例化 类 的自动加载
表示一个域名下的所有/任何主机 使用 的格式是: [*.] example.com 其中 , example.com叫着 裸域名. (这个example.com/net/org不能被注册, 被保留) ...
- 再谈fedora23下Virutalbox的安装. --问题的关键在于 安装kernel-devel包
首先, 要使用 virutalbox的 rpm 安装包 进行安装. 在安装的过程中, 如果提示 有一些包, 没有, dependencies not resolved, 比如libQt..libvpx ...
- (zhuan) Some Talks about Dual Learning
研究|对偶学习:一种新的机器学习范式 this blog copy from: http://www.msra.cn/zh-cn/news/blogs/2016/12/dual-learning-2 ...
- Kubernetes之容器
Images You create your Docker image and push it to a registry before referring to it in a Kubernetes ...
- Jdk在window环境下的安装与配置详解
本文为博主原创,转载请注明出处: 1.2 Java程序开发环境的配置 java开发工具包:java开发工具:记事本 IDE,这个只能写小程序,写大程序需要集成开发工具:反编译工具(我们可以在网上找一 ...
- Latex: 保持参考文献大小写
参考: BibTeX loses capitals when creating .bbl file Latex: 保持参考文献大小写 在排版时,BibTeX会根据参考文献的格式将除了title中的第一 ...