社区
Java SE
帖子详情
java double 精度损失问题
流氓兔bunny
2014-04-20 08:40:25
System.out.println(2.0 - 0.7);输出1.3
System.out.println(2.0 - 1.7);输出0.30000000000000004
为啥2.0-0.7没有精度损失啊????????
...全文
672
13
打赏
收藏
java double 精度损失问题
System.out.println(2.0 - 0.7);输出1.3 System.out.println(2.0 - 1.7);输出0.30000000000000004 为啥2.0-0.7没有精度损失啊????????
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
grapepaul
2014-04-22
打赏
举报
回复
IEEE通用问题,多种语言都有的问题,js,java,C#
u013330547
2014-04-22
打赏
举报
回复
路过,不懂,学习!恩,很深奥!
-江沐风-
2014-04-21
打赏
举报
回复
浮点数本来就不准确,不用在这个问题上纠结太长时间的;
haorengoodman
2014-04-21
打赏
举报
回复
double的有效位数
S117
2014-04-21
打赏
举报
回复
想知道为什么就去看ieee754标准吧!
tony4geek
2014-04-21
打赏
举报
回复
用BigDecimal
yufengdxw
2014-04-21
打赏
举报
回复
这个因编译器而异的。double本来就是不精确的,要精确就用别的方法。
流氓兔bunny
2014-04-20
打赏
举报
回复
我再顶。。。。。。。。。。
流氓兔bunny
2014-04-20
打赏
举报
回复
顶。。。。。。。。。。
流氓兔bunny
2014-04-20
打赏
举报
回复
对啊,1.7转换二进制时就是一个无穷数,所以2.0-1.7会出现精度损失,但是0.7转成二进制也是一个无穷数啊,为啥2.0-0.7就不会精度损失啊????
中华雪碧
2014-04-20
打赏
举报
回复
刚好最近在看《深入理解计算机系统》,用2进制表示10进制小数时,部分小数只是近似的表示
流氓兔bunny
2014-04-20
打赏
举报
回复
来人啊!!!!!!!!!!!!
流氓兔bunny
2014-04-20
打赏
举报
回复
顶啊顶
Java
double
和float
精度
损失
问题
问题
一般,我们会用float和
double
来存储有小数的数据,可能还会用两个浮点型数据进行计算,在某些情况下,float和
double
会出现
精度
损失
,导致存储的数据或者计算结果出现误差。 举个例子 public class Test { public static void main(String[] args) {
double
a = 0.11;
double
b = 2.32; System.out.println(a + b); System.out.println(0.11
java
double
做运算
精度
损失
问题
看代码:
double
a = 0.01;
double
b = 0.0109;
double
c=a+b; System.out.println(c); 大家看到这里说结果肯定是:0.0209; 计算机运算结果:0.020900000000000002由此可见这里存在
精度
问题
,在支付等方面这就是非常重要
java
中四舍五入——
double
转BigDecimal的
精度
损失
问题
背景 在博客 恶心的0.5四舍五入
问题
一文中看到一个关于 0.5 不能正确的四舍五入的
问题
。主要说的是
double
转换到 BigDecimal 后,进行四舍五入得不到正确的结果: public class BigDecimalTest { public static void main(String[] args){
double
d = 3
java
解决
double
精度
损失
问题
BigDecimal--取余
java
解决
double
精度
损失
问题
,使用BigDecimal,以取余举例,替代%取余函数
Java
黑皮书课后题第2章:*2.22(金融应用:货币单位)改写程序清单2-10,解决将
double
转int可能会造成
精度
损失
问题
。以整数值作为输入,其最后两位代表的是美分币值
*2.22(金融应用:货币单位)改写程序清单2-10,解决将
double
转int可能会造成
精度
损失
问题
。以整数值作为输入,其最后两位代表的是美分币值题目题目概述举例程序清单2-10修改思路代码 题目 题目概述 *2.22(金融应用:货币单位)改写程序清单2-10,解决将
double
转int可能会造成
精度
损失
问题
。以整数值作为输入,其最后两位代表的是美分币值 举例 1156表示11美元56美分 程序清单2-10 import
java
.util.Scanner; public class Qingdan {
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章