我是一名高中生,目前正准备参加州学术会议(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)