博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浮点型数据精度偏差与异常
阅读量:5154 次
发布时间:2019-06-13

本文共 440 字,大约阅读时间需要 1 分钟。

工作中时常会用到浮点型数据,而对其进行运算和四舍五入之后经常会发现精度错乱的问题。

例如double a,b,c;c=a+b,然而加之前a,b都是做过四舍五入处理的,a=0.17,b=0.25 ,最后c竟然是:0.42000000000000004

原因

浮点型十进制运算会先将十进制小数转化为二进制,过程中如果出现了循环小数,且存储小数的二进制长度不够用,就会造成误差。

其他进制转化也会存在这种误差。

可以使用Decimal类型解决该问题,Decimal类型的有效位数达到28位,而double类型的16位,所以Decimal类型比Double类型能表示更精确的浮点数。

延伸 

1.在double类型数值进行比较大小的情况最好使用1.02-1.01==double.MinValue这种方式进行判断 

2.使用double类型进行加减的情况下看看能否使用Decimal类型进行计算

转载于:https://www.cnblogs.com/xijie/p/6756156.html

你可能感兴趣的文章
golang (7) 文件操作
查看>>
关于 Object.defineProperty()
查看>>
[转] Maven 从命令行获取项目的版本号
查看>>
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
Java Development Environment in Linux: Install and Configure Oracle
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
(VC/MFC)多线程(Multi-Threading) -1. 基本概念.
查看>>
快数据时代下,Moka携手DataPipeline提升招聘效能
查看>>
day1 用户登陆三次机会
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>
LeetCode Ones and Zeroes
查看>>
基本算法概论
查看>>
jquery动态移除/增加onclick属性详解
查看>>
第九周作业
查看>>
MiniMagick
查看>>