我正在获取计算机系统的总RAM和可用RAM,并试图确定可用百分比。
我正在使用以下代码:
double percent = my.Info.AvailablePhysicalMemory / my.Info.TotalPhysicalMemory;
并且也尝试过:
decimal percent = my.Info.AvailablePhysicalMemory / my.Info.TotalPhysicalMemory;
我确定类型有问题,但是我不确定为什么两种方法的结果都为0。
实际值为Total:17072574464和Available:8746000384。这些值从转换为ulong的系统返回。那么,什么百分比始终等于0?如果我直接输入数字,效果很好。只是不能使用ulong变量-因此,为什么我确定这是我缺乏C#类型经验的问题。
答案 0 :(得分:1)
您正在尝试将整数除以整数,该整数总是四舍五入。除法前,您需要转换为浮点数;例如:
double percent = my.Info.AvailablePhysicalMemory * 1.0 / my.Info.TotalPhysicalMemory;