我是一个自学成才的java初学者,在相同的等式中使用时,我很难理解int和doubles。
例如,
int x;
double x;
i = 5;
x = i / 2 + 1.0; // (answer 3.0)
z = (int) 1.0 + i / 2.0; // (answer 3.5)四舍五入怎么回事?
发布于 2013-10-21 19:35:51
问题是这次行动:
i / 2..。正在执行整数除法。这就是为什么5 / 2给出的结果是2,而不是2.5。这是Java中的正常行为,要执行浮点除法,必须确保至少有一个操作数是浮点文本:
5 / 2.0现在,如预期的那样,上面的内容将返回2.5。或者,您可以强制转换其中一个操作数:
((double) i) / 2发布于 2013-10-21 19:36:44
包含两个int的除法将产生一个int(因此,5/2= 2)。如果在其中一个操作数中使用double,它将产生一个double (因此5/ 2.0 = 2.5)。其余的是操作优先级。
发布于 2013-10-21 19:40:04
i / 2 = int 2,因为两个操作数都是整数,因此使用整数除法操作(产生整数结果)。
i / 2.0 = double 2.5,因为我首先被强制使用double (另一个操作数的类型),并且使用双重除法。
https://stackoverflow.com/questions/19503152
复制相似问题