如何在java中查找百分比我的代码给出错误?

Sye*_*aza 1 java jsp

我试图让百分比,但我的代码是给"0.0",而这两个totalMemoryusageMemory具有值我还设置小数点后4位,也不过结果是"0.0000"我的代码,

private static long maxMemory=0;
private static long freeMemory=0;
private static long totalMemory=0;
private static long usageMemory=0;
private static double Percentage;

Runtime runtime=Runtime.getRuntime();
maxMemory=runtime.maxMemory();
freeMemory=runtime.freeMemory();
totalMemory=runtime.totalMemory();
usageMemory=totalMemory-freeMemory;
Percentage=((usageMemory/totalMemory)*100.0);
//NumberFormat percentage =NumberFormat.getPercentInstance();
//percentage = new DecimalFormat("0.0#%");
//String pr = percentage.format(Percentage);
System.out.print(Percentage);
System.out.print("Total Memory:"+totalMemory+"\n");
System.out.print("Memory Usage:"+usageMemory+"\n");
Run Code Online (Sandbox Code Playgroud)

请帮助我,我做错了,在这方面的任何帮助非常感谢.

提前致谢 !

Jer*_*nce 5

这是因为你使用长型.长类型不处理小数.

使用double而不是long

我解释说:将两个长结果分成一个长(因此它在乘以100之前被舍入).

代码 :

double totalMemory;
double freeMemory;....

totalMemory=runtime.getTotalMemory()...
Run Code Online (Sandbox Code Playgroud)

或者如果你想保持长型:

percentage=(((double)usageMemory/(double)totalMemory)*100d);
Run Code Online (Sandbox Code Playgroud)