我正在尝试计算Windows中已用磁盘空间的百分比,而totaldrive表示Long中的C驱动器的总磁盘空间和Long中的freedrive dentoes可用空间。
long totaloccupied = totaldrive - freedrive;
此处计算使用百分比
Long Percentageused =(totaloccupied/totaldrive*100);
System.out.println(Percentageused);
print语句返回0.有人可以提供帮助,因为我没有得到所需的值
答案 0 :(得分:51)
你可能将long除以long,即long(long = long = long)操作,给出一个很长的结果(在你的情况下为0)。
通过将除法的操作数强制转换为浮点类型,可以实现相同的目的。
Long Percentageused = (long)((float)totaloccupied/totaldrive*100);
答案 1 :(得分:5)
你正在进行整数除法!由于totaloccupied
小于totaldrive
,因此两者的除法给出了答案0
。你应该先转换为双倍:
double percentageUsed = 100.0 * totalOccupied / totalDrive;
请注意,将小数点添加到100
可确保将其视为double
。
答案 2 :(得分:1)
将从左到右进行评估,第一个整数除法将返回0(例如8/10评估为0)。将值转换为浮点数或执行100 * a / b。 Floats会给你一个更精确的结果。