我是一名自学成才的初学者,在使用同一个等式时难以理解整数和双精度数
例如,
int x;
double x;
i = 5;
x = i / 2 + 1.0; // (answer 3.0)
z = (int) 1.0 + i / 2.0; // (answer 3.5)
Run Code Online (Sandbox Code Playgroud)
四舍五入是什么?
问题是这个操作:
i / 2
Run Code Online (Sandbox Code Playgroud)
...正在执行整数除法.这就是为什么5 / 2作为结果给出2,不是2.5.这是Java中的常规行为,要执行浮点除法,必须确保至少有一个操作数是浮点字面值:
5 / 2.0
Run Code Online (Sandbox Code Playgroud)
现在上面将按2.5预期返回.或者,您可以转换其中一个操作数:
((double) i) / 2
Run Code Online (Sandbox Code Playgroud)