Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java不打印小数点_Java - Fatal编程技术网

Java不打印小数点

Java不打印小数点,java,Java,我试图做一个非常基本的操作,如下所示: double a=21/5; System.out.println(a); 但是,每次我的输出都是4.0,而不是4.2。我第一次遇到这种情况。我已经使用Java多年了,但从未遇到过这种默默无闻的情况 您使用的是整数除法,其结果始终是整数 你应该用这样的东西 double a=(double)21/5; 您使用的是整数除法,其结果将始终是整数 你应该用这样的东西 double a=(double)21/5; 强制转换除法或将其中一个参数指定为十进制,以

我试图做一个非常基本的操作,如下所示:

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

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

您使用的是整数除法,其结果始终是整数 你应该用这样的东西

double a=(double)21/5;

您使用的是整数除法,其结果将始终是整数 你应该用这样的东西

double a=(double)21/5;

强制转换除法或将其中一个参数指定为十进制,以强制返回双精度:

double a = (double)21/5;
-或-


强制转换除法或将其中一个参数指定为十进制,以强制返回双精度:

double a = (double)21/5;
-或-


只需将其中一个数字转换为两倍:

double a = 21/5.0;

只需将其中一个数字转换为两倍:

double a = 21/5.0;

你在做整数除法

尝试:


你在做整数除法

尝试:

强制演员加倍。 双a=21.0/5

这叫做算术推广。这意味着方程中的所有项都等于具有最高精度的变量类型。在这种情况下,加倍。

强制强制转换为加倍。 双a=21.0/5


这叫做算术推广。这意味着方程中的所有项都等于具有最高精度的变量类型。在本例中,双精度。

该除法是一个整数除法,所以21/5=4,然后转换为双精度,所以为4.0。@SotiriosDelimanolis:显然!该死的我的脑袋。谢谢你救了它。@SotiriosDelimanolis:这是回答,不是评论。一个我会投赞成票的-嗯,你还有6个可供选择。@SotiriosDelimanolis:不过,你知道,没有一个费心解释发生了什么事。:-即使是现在,那里的编辑版本仍然没有那么好。这就是我发表评论的原因,很高兴看到好的答案。除法是一个整数除法,所以21/5=4,然后转换为双精度,所以是4.0。@SotiriosDelimanolis:显然!该死的我的脑袋。谢谢你救了它。@SotiriosDelimanolis:这是回答,不是评论。一个我会投赞成票的-嗯,你还有6个可供选择。@SotiriosDelimanolis:不过,你知道,没有一个费心解释发生了什么事。:-即使是现在,那里的编辑版本仍然没有那么好。这就是我发表评论的原因,很高兴看到好的答案。