java 两个float数值相加精度问题
floata=0.3f;floatb=0.4f;floatc=0.5f;floatd=0.2f;syso(a+b);syso(a+c);syso(b+c);syso(c+...
float a = 0.3f;
float b = 0.4f;
float c = 0.5f;
float d = 0.2f;
syso(a+b);
syso(a+c);
syso(b+c);
syso(c+d);
--------------------------
输出:
0.7000005
0.8
0.9
0.7
为什么0.3+0.4的0.7后边会出现多位小数,后边的两个相加却不会呢,就算是有精度问题,这应该都是会有一样的问题的啊,而且0.2+0.5就不会出现这种情况,是在是费解啊,求大神指导一下 展开
float b = 0.4f;
float c = 0.5f;
float d = 0.2f;
syso(a+b);
syso(a+c);
syso(b+c);
syso(c+d);
--------------------------
输出:
0.7000005
0.8
0.9
0.7
为什么0.3+0.4的0.7后边会出现多位小数,后边的两个相加却不会呢,就算是有精度问题,这应该都是会有一样的问题的啊,而且0.2+0.5就不会出现这种情况,是在是费解啊,求大神指导一下 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询