为什么1/2使用双倍== 0?

Ben*_*ice 3 java double

我是一名高中生,目前正准备参加州学术会议(UIL).我有一个问题,我到处寻找,似乎无法找到答案!为什么打印出0.0?

double d = 1/2;
System.out.println(d);
Run Code Online (Sandbox Code Playgroud)

Sur*_*tta 12

这是因为数据类型.

当你这样做1/2是整数除法,因为两个操作数是整数,因此它解析为零(0.5向下舍入为零).

如果你将它们中的任何一个转换为double,你将获得双重结果.

double d = 1d/2;
Run Code Online (Sandbox Code Playgroud)

要么

double d = 1/2.0;
Run Code Online (Sandbox Code Playgroud)