为什么这个乌龙除以乌龙能给我0?

时间:2019-04-10 17:42:49

标签: c# types ulong

我正在获取计算机系统的总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#类型经验的问题。

1 个答案:

答案 0 :(得分:1)

您正在尝试将整数除以整数,该整数总是四舍五入。除法前,您需要转换为浮点数;例如:

double percent = my.Info.AvailablePhysicalMemory * 1.0 / my.Info.TotalPhysicalMemory;