我想将控件的大小除以表单的大小,并希望获得其底值。
我在想当我尝试用整数除以整数并将其结果再次存储在integer
时会返回什么。
我只想要底价。我尝试使用Math.Floor
,Math.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);
答案 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);