C#长整数的不正确除法返回零

1 c# casting division typeconverter int64

这是我在C#代码上所拥有的:

Int64 Free = Convert.ToInt64(number1); //has to be ToInt64
Int64 Size = Convert.ToInt64(number2); //has to be ToInt64
Int64 Total = (Free/Size) * 100;
Run Code Online (Sandbox Code Playgroud)

Free是35387133952,大小是64419262464

手动划分Free / Size我得到0.5493

问题:不是总回报54.93,而是返回0

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

谢谢

ElG*_*lan 5

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

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

double Total = ((double)Free/(double)Size) * 100;
Run Code Online (Sandbox Code Playgroud)

  • 为了记录,您只需要_need_即可转换变量之一。但这是一个小问题。 (2认同)