我正在为我的计算机科学课程编写一个程序而且我遇到了一个等式问题。直到我开始破解代码直到我意识到所有双打都被向下舍入为止。例如:
public static void test(){
double var = 4/3;
System.out.println(var);
}
这将打印" 1.0"到控制台。除了main方法之外,我已经在代码中注释掉了其他所有内容,只调用了它。请帮忙
答案 0 :(得分:2)
您正在Java中执行整数除法,即使稍后分配给int
,也必须始终生成另一个double
。
要强制进行浮点除法,请使用double
文字:
double var = 4.0/3.0;
只有一个人需要.0
。或者,您可以将其中一个投射到double
以达到相同的效果:
double var = (double) 4 / 3;
另一种选择:在一个或两个文字上放置d
后缀:
double var = 4d / 3d;