我正在尝试做一个非常基本的操作,如下所示:
double a=21/5;
System.out.println(a);
但是,每次我得到4.0
作为输出而不是4.2
. 我是第一次遇到这种情况。我已经使用 Java 多年,但从未遇到过这种晦涩难懂的问题。
我正在尝试做一个非常基本的操作,如下所示:
double a=21/5;
System.out.println(a);
但是,每次我得到4.0
作为输出而不是4.2
. 我是第一次遇到这种情况。我已经使用 Java 多年,但从未遇到过这种晦涩难懂的问题。
您正在使用整数除法,其结果将始终为整数您应该使用这样的东西。
double a=(double)21/5;
你正在做整数除法......
尝试:
double a = 21.0/5;
强制除法或将参数之一指定为小数以强制返回为双精度:
double a = (double)21/5;
-或者-
double a = 21.0/5;
只需将其中一个数字加倍:
double a = 21/5.0;
强制演员加倍。
double a = 21.0/5
这称为算术提升。这意味着方程中的所有项都等于精度最高的变量类型。在这种情况下双倍。