将整数除以整数并返回整数值时将返回的内容

时间:2010-06-22 06:07:42

标签: c# math

我想将控件的大小除以表单的大小,并希望获得其底值。 我在想当我尝试用整数除以整数并将其结果再次存储在integer时会返回什么。

我只想要底价。我尝试使用Math.FloorMath.Truncate,但它显示了一个错误,在跟随methods is ambigious之间调用,因为编译器无法理解潜水后返回的值类型,即十进制或双精度

如果我不使用任何此类功能,它会返回我的楼层值吗? 我只想要底价。

        Nullable<int> PanelCountInSingleRow = null;
        Nullable<int> widthRemainder = null;

        //setting the size of the panel
        CurrentControlSize = PanelView.Size;
        //Calculate no of Panels that can come in a single row.
        PanelCountInSingleRow = Math.Floor(this.Size.Width / CurrentControlSize.Width);

1 个答案:

答案 0 :(得分:4)

整数除法向0逼近。与发言并不完全相同(由于负数向上“向上”向0),但我认为你的大小无论如何都是非负的。从C#4规范,第7.8.2节:

  

该部门将结果四舍五入   零。因而绝对值   result是最大可能的整数   小于或等于   商的绝对值   两个操作数。结果是零或   两个操作数都有的时候是积极的   相同的符号和零或负   当两个操作数相反时   迹象。

(注意,这是专门用于整数除法。显然浮点除法不会这样做!)

所以基本上你应该可以删除Math.Floor来电。

如果您想获得余数,可以使用Math.DivRem

int remainder;
int count = Math.DivRem(Size.Width, CurrentControlSize.Width, out remainder);
相关问题