这就是我在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
手动划分自由/尺寸我得 0.5493
问题:而不是总回报率 54.93 ,而是返回 0
为什么会发生这种情况的任何想法?
由于
答案 0 :(得分:5)
你试图划分两个整数。这是预期的行为。
如果需要获得浮点答案,则需要将值转换为浮点值:
double Total = ((double)Free/(double)Size) * 100;
答案 1 :(得分:2)
你正在划分整数,所以你得到了一个回归。
如果free和size需要是int64,你可以将它们转换为浮点数或双倍数等。
double total = ((double)Free/(double)Size) * 100
但是没有办法将54.93存储到int ..所以Total不能是int