Java不打印小数位

时间:2013-03-01 16:23:07

标签: java

我正在尝试进行如下非常基本的操作:

double a=21/5;
System.out.println(a);

但是,每次我将4.0作为输出而不是4.2。我第一次遇到这个。我已经使用Java多年了,但从未遇到过这种默默无闻。

5 个答案:

答案 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

这称为算术推广。这意味着等式中的所有项都等于具有最高精度的变量类型。在这种情况下双倍。