1、 System.out.println(0.1); 输出是 0.1
2、 System.out.println(1-0.9); 输出是 0.09999999999999998
为什么同样是 0.1,直接打印就 ok,经过计算后就会由于 double 的精度导致输出循环。
还有,
double x = 1.0;
double y = 3.0;
double z = 3.0;
System.out.println(x/y*z);
为什么输出的是 1 ?应该是 0.9999999999999999999 的循环才对吧。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.