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:不过,你知道,没有一个费心解释发生了什么事。:-即使是现在,那里的编辑版本仍然没有那么好。这就是我发表评论的原因,很高兴看到好的答案。