源码如下
public class MethodDemo {
public static void main(String[] args) {
double sum1 = sum(10.1, 20.1);
System.out.println(sum1);
}
public static double sum(double a,double b){
double k=a+b;
System.out.println(a + b);
return a+b;
}
}
控制台打印信息如下
/Library/Java/JavaVirtualMachines/jdk-18.0.1.1.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=53713:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/yuebingqi/IdeaProjects/method/out/production/method com.itheima_06.MethodTest
30.200000000000003
30.200000000000003
进程已结束,退出代码为 0
为什么10.1+20.1会出现30.200000000000003,就只有*.1+*.1会出现,别的情况都正常
Debug也试过了,找不到原因求大佬们解答
本文探讨了Java中浮点数运算导致的精度损失问题,通过一个具体的例子展示了当两个浮点数相加时出现的非预期结果,并提出了对于此类问题的思考。

1219

被折叠的 条评论
为什么被折叠?



