私はここである種の非常にばかげた間違いを犯したと確信しています。私はこのコードを持っています:
private static String generateRAM()
{
final long RAM_TOTAL = Runtime.getRuntime().totalMemory();
final long RAM_FREE = Runtime.getRuntime().freeMemory();
final long RAM_USED = RAM_TOTAL - RAM_FREE;
final long RAM_TOTAL_MB = RAM_TOTAL / 8 / 1024;
final long RAM_FREE_MB = RAM_FREE / 8 / 1024;
final long RAM_USED_MB = RAM_USED / 8 / 1024;
final double RAM_USED_PERCENTAGE = (RAM_USED / RAM_TOTAL) * 100;
return RAM_TOTAL_MB + "MB TOTAL / " + RAM_FREE_MB + "MB FREE / " + RAM_USED_MB + "MB USED (" + RAM_USED_PERCENTAGE + "%)";
}
これは以下を返します:
15440MB TOTAL / 11809MB FREE / 3630MB USED (0.0%)
パーセンテージは明らかに間違っています。これはどのように起こりますか?私は、私の知る限り、すべての計算を正しく行っています。与えられた数字を電卓に打ち込んでパーセンテージを自分で見つけると、23.5 という私の期待される結果が得られます。
私は自分自身を蹴る恐ろしい間違いを犯したと確信しています.誰かが私を啓発してくれますか?