为什么这个基本的java代码会产生不同的输出?

时间:2014-09-03 04:40:17

标签: java

^我的问题被标记为重复的问题与此问题不同。 那个问题是如何使浮点数除以整数。

这是我的代码:

public class Test {
public static void main(String[] args) {
    System.out.println("33/5 is " + 33/5);
    System.out.println("33/5.0 is " + 33/5.0);
    }
}

输出是:

33/5 is 6
33/5.0 is 6.6

顺便说一下如果这是重复的,请指示我回答的地方,因为我找不到。

2 个答案:

答案 0 :(得分:2)

在第一次计算33 / 5上,你实际上是在划分一个整数,从而得到没有小数位的结果。

第二个计算:33/5.0结果实际上提升为 double ,其精度高于int,并产生小数。

请记住,5.0double,从而将计算结果提升为双原语

答案 1 :(得分:1)

int/int(33/5)将始终提供int所以33/5 = 6

int/double(33 / 5.0)会给double所以33 / 5.0 = 6.6