如何在java中划分两个长变量
很抱歉这个基本问题,我必须将长整型变量除以另一个长整型变量,但它返回0。任何人都可以帮忙吗?
long a = 3004230;
long b = 6793368;
long c = (a/b)*100;
很抱歉这个基本问题,我必须将长整型变量除以另一个长整型变量,但它返回0。任何人都可以帮忙吗?
long a = 3004230;
long b = 6793368;
long c = (a/b)*100;
该代码存在几个问题。首先,默认情况下,非浮点文本值的类型是,因此在代码中是 .改为显式声明它。int
3004230
int
long
3004230L
此外,使用非浮点文本完成的所有算术都会返回结果,除非其中一个变量专门转换为浮点类型,例如 或 。由于小于 1,因此被截断为 0(浮点值刚刚被截断)。此外,即使它确实返回了相同的结果,您也试图将其存储在无法存储浮点值的中。int
float
double
(a/b)*100
long
因此,您应该执行以下操作以获得实际结果。
long a = 3004230L; // Use the L notation to declare this literal a long.
long b = 6793368L;
double c = ((double) a/b)*100; /* casting one of the variables to (double) means the result will not be 0 */
我希望这有帮助。
final long a = 3004230;
final long b = 6793368;
final double c = ((double) a / b) * 100;
=> c = 44.22298335670907