1

这就是我的 C# 代码中的内容:

Int64 Free = Convert.ToInt64(number1); //has to be ToInt64
Int64 Size = Convert.ToInt64(number2); //has to be ToInt64
Int64 Total = (Free/Size) * 100;

免费为 35387133952,大小为 64419262464

手动除以 Free/Size 我得到0.5493

问题:返回0而不是 Total return 54.93

任何想法为什么会发生这种情况?

谢谢

4

2 回答 2

5

您正在尝试将两个整数相除。这是预期的行为。

如果您需要获得浮点答案,则需要将值转换为浮点:

double Total = ((double)Free/(double)Size) * 100;
于 2014-08-01T18:54:37.603 回答
2

你正在划分整数,所以你得到一个整数。

如果 free 和 size 需要是 int64 的,您可以将它们转换为浮点数或双精度数等..

double total = ((double)Free/(double)Size) * 100

但没有办法将 54.93 存储到 int .. 所以 Total 不能是 int

于 2014-08-01T18:50:34.243 回答