C# 将整数除以整数并返回整数中的值时将返回什么

C# 将整数除以整数并返回整数中的值时将返回什么,c#,math,C#,Math,我想把控件的大小除以窗体的大小,然后得到它的下限值。 我在想,当我尝试将一个整数除以一个整数并将其结果再次存储在一个整数中时,会返回什么 我只想要底价。我尝试使用Math.Floor,Math.Truncate,但它显示了一个错误,即以下方法之间的调用不明确,因为编译器无法理解跳转后返回的值的类型,即十进制或双精度 如果我不使用任何这样的函数,它会返回下限值吗。 我只想要底价 Nullable<int> PanelCountInSingleRow = null;

我想把控件的大小除以窗体的大小,然后得到它的下限值。 我在想,当我尝试将一个整数除以一个整数并将其结果再次存储在一个
整数中时,会返回什么

我只想要底价。我尝试使用
Math.Floor
Math.Truncate
,但它显示了一个错误,即以下
方法之间的调用不明确
,因为编译器无法理解跳转后返回的值的类型,即十进制或双精度

如果我不使用任何这样的函数,它会返回下限值吗。 我只想要底价

        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);
Nullable PanelCountInSingleRow=null;
可空宽度余数=空;
//设置面板的大小
CurrentControlSize=PanelView.Size;
//计算一行中可容纳的配电盘数量。
PanelCountInSingleRow=数学地板(this.Size.Width/CurrentControlSize.Width);

整数除法向0舍入。这和发言不太一样(因为负数向上舍入到0),但我假设你的尺寸不是负数。根据C#4规范第7.8.2节:

分组将结果四舍五入 零。因此,绝对值 结果是可能的最大整数 小于或等于 函数商的绝对值 两个操作数。结果是零或零 当两个操作数具有 相同的符号和零或负 当两个操作数具有相反的 标志

(请注意,这是专门针对整数除法的。显然浮点除法不能做到这一点!)

因此,基本上您应该能够删除
Math.Floor
调用

如果您还想获得剩余部分,可以使用:


整数除法向0舍入。这和发言不太一样(因为负数向上舍入到0),但我假设你的尺寸不是负数。根据C#4规范第7.8.2节:

分组将结果四舍五入 零。因此,绝对值 结果是可能的最大整数 小于或等于 函数商的绝对值 两个操作数。结果是零或零 当两个操作数具有 相同的符号和零或负 当两个操作数具有相反的 标志

(请注意,这是专门针对整数除法的。显然浮点除法不能做到这一点!)

因此,基本上您应该能够删除
Math.Floor
调用

如果您还想获得剩余部分,可以使用:


给初学者看一下你的代码怎么样?@Gary:当然我是在放代码,因为控件通常比窗体小,控件大小除以窗体大小的整数总是会得到0。但是,是的,它将是一个整数,表示结果的下限值。为初学者显示您的代码如何?@Gary:当然,我会显示我的代码,因为控件通常比窗体小,控件大小除以窗体大小的整数将始终为0。但是,是的,它将是一个整数,表示结果的下限值。感谢您提供的信息,我还有一个关于您编辑余数的问题。它会返回一些固定的十进制值还是别的什么。在这种情况下是10/3?剩余的将是333333到?,在5/2?5等于50或what@Shantanu:否,它将返回余数-因此对于10/3,余数将是1,因为这是10除以3后剩下的值。同上,5/2是2的余数1。8/2将是4个余数0,11/3将是3个余数2等。有关更多详细信息,请参阅文档。哦,sry,没有想到我在问什么。是的,你是对的。谢谢你提供的信息,我还有一个关于你编辑余数的问题。它会返回一些固定的十进制值还是别的什么。在这种情况下是10/3?剩余的将是333333到?,在5/2?5等于50或what@Shantanu:否,它将返回余数-因此对于10/3,余数将是1,因为这是10除以3后剩下的值。同上,5/2是2的余数1。8/2将是4个余数0,11/3将是3个余数2等。有关更多详细信息,请参阅文档。哦,sry,没有想到我在问什么。是的,你是对的。
int remainder;
int count = Math.DivRem(Size.Width, CurrentControlSize.Width, out remainder);