0

我试图除以 2 Long 以找到百分比。但是,我只得到0.0%or 当它们相等时,100.0%. 这就是我正在做的

long size =
long mem = 

double avg = (double)(size / mem) * 100;
4

2 回答 2

5

你正在做long除法,它会截断数字的小数部分。至少有一个操作数必须是 adouble才能产生非零double,您可以这样做:

double avg = (double)size / mem * 100;

分子现在变为 a double,因为强制转换的优先级高于除法运算符/

于 2013-03-21T20:47:35.207 回答
1

如果你想避免长十进制数,你可以使用。

long percentage = 100 * size / mem; // as an integer.

如果你想要一位小数,你可以做

double percentage = (1000 * size / mem) / 10.0;
于 2013-03-21T23:09:11.247 回答