关于自动舍入导致java从double到integer?

时间:2013-09-04 16:10:06

标签: java integer double rounding

Java中以下代码的输出是3.0

为什么不是3.3333333...

double a = 10 / 3;
System.out.println(a);

1 个答案:

答案 0 :(得分:6)

因为int / int会返回int(无论您之后将其分配给什么)。

所以10 / 3返回3(整数除法向下舍入)。

这只会转换为double

要解决此问题,请将其中一个值设为double(因此它为double / int,返回double):

double a = 10.0 / 3;

double a = (double)10 / 3;