java 两个 double 类型变量相加

最近在学习javaapplet,遇到一个很奇怪的问题,就是在运算两个double变量的时候会出现不知道是不是错误的情况。比如1.3+2.3=3.59999999996而不... 最近在学习java applet,遇到一个很奇怪的问题,就是在运算两个double变量的时候会出现不知道是不是错误的情况。
比如 1.3+2.3=3.59999999996 而不是3.6
但是 1.3+1.3=2.6就没有之前的那种情况的出现。
对Java,C++跟PHP都还算是比较熟悉,好像是第一次遇到这个问题,想请教一下这是怎么回事,怎么才能避免呢。
附上两个截图,包含代码跟applet viewer的截图。

出现问题的情况

正常的情况
展开
 我来答
chenluyao0629
2013-11-27 · TA获得超过820个赞
知道小有建树答主
回答量:538
采纳率:50%
帮助的人:410万
展开全部
在编程语言里,double,float都不是精确的值。比如float x=1,实际上计算机存储的可能是0.999999,也可能是1.000000,这都不是我们能控制的。

为了解决这个问题,java引入了 BigDecimal类,用String类型来纪录精确值,聪明吧

import java.math.BigDecimal

BigDecimal x = new BigDecimal(1.0);

BigDecimal y = x.add(x);
等用法,你可以在网上搜到
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式