对于基本问题,我很抱歉,我必须将长变量除以另一个长变量,但它返回 0。有人可以帮忙吗
long a = 3004230;
long b = 6793368;
long c = (a/b)*100;
原文由 Arulmurugan 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于基本问题,我很抱歉,我必须将长变量除以另一个长变量,但它返回 0。有人可以帮忙吗
long a = 3004230;
long b = 6793368;
long c = (a/b)*100;
原文由 Arulmurugan 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
文字值和文字算术
该代码有几个问题。首先,非浮点 文字值 的类型是
int
默认情况下,所以3004230
在你的代码中是一个int
要明确声明它为long
使用3004230L
代替。此外,所有使用非浮点 文字 完成的算术运算都会返回
int
结果,除非其中一个变量被专门转换为浮点类型,例如float
或double
。因此(a/b)*100
小于 1,因此被 截断 为 0(浮点值被截断)。此外,即使它确实返回了相同的结果,您也试图将其存储在不能存储浮点值的long
中。所以,你应该做类似下面的事情来获得真正的结果。
我希望这有帮助。