博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录Java Double类型的数值相加/相减出现精度误差的问题
阅读量:6856 次
发布时间:2019-06-26

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

hot3.png

问题情况:

double b = 0.02;double c = 0.05;System.out.println(c-b);

这时我们希望得到的是 0.03 

但是输出结果  0.030000000000000002

 

解决方法:改用 BigDecimal 

具体操作:

BigDecimal b2 = new BigDecimal(Double.toString(b));BigDecimal b3 = new BigDecimal(Double.toString(c));System.out.println(b3.subtract(b2).doubleValue());System.out.println(b2.add(b3).doubleValue());

输出结果当然是 0.03 和 0.07 了

 

转载于:https://my.oschina.net/xiaozhiwen/blog/1606004

你可能感兴趣的文章
UML中类结构图示例
查看>>
03-hibernate注解-关系映射级别注解-一对一
查看>>
EasyUI combotree的使用
查看>>
C#网络编程二:SOCKET编程
查看>>
【多媒体封装格式详解】--- AAC ADTS格式分析
查看>>
联想IDEAPAD 320C-15笔记本显卡驱动问题
查看>>
ES6简介
查看>>
UWP FillRowViewPanel
查看>>
目前的.NET(C#)世界里,主流的ORM框架
查看>>
Java 基础知识点
查看>>
Linux--忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法...
查看>>
vimperator
查看>>
(原創) 如何使用boost::array? (C/C++) (template) (boost)
查看>>
Oracle for Windows 相关下载地址
查看>>
电子书下载:Microsoft Silverlight 4 Business Application Development: Beginners Guide
查看>>
.Net下RabbitMQ的使用(2) -- 发送接收消息
查看>>
2009年云数据库的开发和应用前景(转载)
查看>>
Some key terms of Data Mining
查看>>
咏南中间件更新日志
查看>>
9-1让我想起了学生时代~~
查看>>