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

为什么这个基本java代码会产生不同的输出?,java,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 顺便说一句,如果这是

^我的问题被标记为重复的问题与这个问题不同。 这个问题是如何从除以整数得到一个浮点

这是我的代码:

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
顺便说一句,如果这是重复的,请告诉我答案在哪里,因为我找不到答案。

int/int
(33/5)将始终给出
int
所以33/5=6

int/double
(33/5.0)将给出
double
so 33/5.0=6.6

int/int
(33/5)将始终给出
int
so 33/5=6

int/double
(33/5.0)将给出
double
so 33/5.0=6.6

int/int
(33/5)将始终给出
int
so 33/5=6

int/double
(33/5.0)将给出
double
so 33/5.0=6.6

int/int
(33/5)将始终给出
int
so 33/5=6


int/double
(33/5.0)将给出
double
so 33/5.0=6.6

在第一次计算时
33/5
实际上是在除以一个整数,因此得到的结果没有小数点

第二次计算:
33/5.0
结果实际上提升为double,其精度比int高,结果为十进制


请记住,
5.0
是一个
double
,因此在第一次计算
33/5
时,将计算结果提升为double原语

,您实际上是在除以一个整数,因此得到的结果不带小数点

第二次计算:
33/5.0
结果实际上提升为double,其精度比int高,结果为十进制


请记住,
5.0
是一个
double
,因此在第一次计算
33/5
时,将计算结果提升为double原语

,您实际上是在除以一个整数,因此得到的结果不带小数点

第二次计算:
33/5.0
结果实际上提升为double,其精度比int高,结果为十进制


请记住,
5.0
是一个
double
,因此在第一次计算
33/5
时,将计算结果提升为double原语

,您实际上是在除以一个整数,因此得到的结果不带小数点

第二次计算:
33/5.0
结果实际上提升为double,其精度比int高,结果为十进制


请记住,
5.0
是一个
double
,因此将计算结果提升为double原语

有点不清楚您在问什么-也许您应该在您遇到的问题中进行编辑?我在标题中问到为什么代码会产生两个不同的输出。有点不清楚您在问什么-也许是您应该在你遇到的问题中进行编辑吗?我在标题中问了为什么代码会产生两种不同的输出。不清楚你在问什么-也许你应该在你遇到的问题中进行编辑?我在标题中问了为什么代码会产生两种不同的输出。不清楚你在问什么-也许你应该在标题中进行编辑你有什么问题?我在标题中问过为什么代码会产生两种不同的输出。