我试图划分2个Long来找到百分比。但是,我只获得0.0%
或等同时100.0%
。这就是我正在做的事情
long size =
long mem =
double avg = (double)(size / mem) * 100;
答案 0 :(得分:5)
你正在进行long
除法,它会截断数字的小数部分。至少有一个操作数必须是double
才能产生非零double
,你可以这样做:
double avg = (double)size / mem * 100;
分子现在变为double
,因为演员阵容high precedence而不是除法运算符/
。
答案 1 :(得分:1)
如果你想避免使用长十进制数字,你可以使用。
long percentage = 100 * size / mem; // as an integer.
如果你想要一个小数位,你可以做
double percentage = (1000 * size / mem) / 10.0;