将整数除以整数并返回整数值时会返回什么
我想要将控件的大小与表单的大小分开,并希望获取其底板值。 我想着当我尝试用整数除整数并将其结果再次存储在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不太一样的发言(由于负数四舍五入“涨”向0),但我假设你的尺寸都是非负的反正。根据C#4规范,第7.8.2节:
该部门将结果向 调零。因此, 结果的绝对值是最大可能的整数 ,其小于或等于两个操作数的商的绝对值 。结果为零或 正数,当两个操作数有 相同符号和零或负数 时,两个操作数有相反的 符号。
(注意,这是专门为整数除法。显然浮点除法并没有这样做!)
所以基本上你应该能够去除Math.Floor
电话。
如果你想要得到的余数,以及,你可以使用Math.DivRem
:
int remainder;
int count = Math.DivRem(Size.Width, CurrentControlSize.Width, out remainder);
感谢您提供的信息,我对您编辑的其余部分有更多的问题。它会返回一些固定的十进制值或其他东西吗?例如。在这种情况下10/3?在5/2中剩余的数字是333333? 5作为50或者什么 – 2010-06-22 06:16:43
@Shantanu:不,它会返回余数* - 因此对于10/3,余数将是1,因为这是10除以3后剩下的部分。同上5/2是2余数1。 8/2将是4剩余0,11/3将3剩余2等。有关更多详细信息,请参阅文档。 – 2010-06-22 06:22:15
oops sry,没想到我在问什么。你是对的。 – 2010-06-22 06:25:56
如何显示对于初学者你的代码? – Gary 2010-06-22 06:09:04
@Gary:当然我正在编写我的代码 – 2010-06-22 06:10:21
由于控件通常比窗体小,因此按窗体大小对控件大小进行整数除法将始终为0.但是,它将是一个表示底面值的整数的结果。 – 2010-06-22 06:12:58