我正在尝试进行如下非常基本的操作:
double a=21/5;
System.out.println(a);
但是,每次我将4.0
作为输出而不是4.2
。我第一次遇到这个。我已经使用Java多年了,但从未遇到过这种默默无闻。
答案 0 :(得分:6)
您正在使用整数除法,结果将始终为整数 你应该使用这样的东西。
double a=(double)21/5;
答案 1 :(得分:2)
你正在进行整数除法......
尝试:
double a = 21.0/5;
答案 2 :(得分:0)
转换除法或将其中一个参数指定为小数,以强制返回为double:
double a = (double)21/5;
-OR -
double a = 21.0/5;
答案 3 :(得分:0)
只需将其中一个数字加倍:
double a = 21/5.0;
答案 4 :(得分:0)
强制演员加倍。
double a = 21.0/5
这称为算术推广。这意味着等式中的所有项都等于具有最高精度的变量类型。在这种情况下双倍。