Vb.net math.floor应该返回整数

Vb.net math.floor应该返回整数,vb.net,Vb.net,我试图得到一个数除以两个变量后的整数部分。 即,如果值为3.75,则得到3 displaycount和itemcount都是整数变量 Dim cntr As Integer cntr = Math.Floor(Math.Abs(itemCount / displaycount)) 该代码在VS2012中生成了一个蓝色的曲线,注释为“将双精度转换为整数时可能会发生运行时错误”,但Math.Floor应该采用十进制或双精度并返回整数。“Math.Floor应该采用十

我试图得到一个数除以两个变量后的整数部分。 即,如果值为3.75,则得到3 displaycount和itemcount都是整数变量

    Dim cntr As Integer        
    cntr = Math.Floor(Math.Abs(itemCount / displaycount))
该代码在VS2012中生成了一个蓝色的曲线,注释为“将双精度转换为整数时可能会发生运行时错误”,但Math.Floor应该采用十进制或双精度并返回整数。

“Math.Floor应该采用十进制或双精度并返回整数。”不,它不是。它返回与参数类型相同的值。请参阅文档,例如

我希望VS会建议在赋值的RHS附近添加CInt();你没有看到吗?

“Math.Floor应该取一个十进制或双精度,然后返回一个整数。”不,不是。它返回与参数类型相同的值。请参阅文档,例如


我希望VS会建议在赋值的RHS附近添加CInt();如果您需要一个整数作为结果,请考虑使用<代码> CINT<代码>、<代码> int >代码>或<代码>修复< /代码>函数。< /P>
  • CInt使用银行家四舍五入法将整数四舍五入为最接近的整数(n.5舍五入为最接近的偶数)

  • Int删除小数部分。负数被截断为较小的数字
    Int(-8.4)=-9

  • 修复删除小数部分。负数被截断为更大的数
    Fix(-8.4)=-8


< P> >和

< P>如果需要一个整数作为结果,请考虑使用<代码> CINT<代码>、<代码> int >代码>或<代码>修复< /代码>函数。< /P>
  • CInt使用银行家四舍五入法将整数四舍五入为最接近的整数(n.5舍五入为最接近的偶数)

  • Int删除小数部分。负数被截断为较小的数字
    Int(-8.4)=-9

  • 修复删除小数部分。负数被截断为更大的数
    Fix(-8.4)=-8


请参阅和。

Math.Floor Method.NET Framework 4.5其他版本返回的最大整数小于或等于指定的数字……直接来自MSDN,无论如何,环绕它的CInt都可以工作, TY@Dinotom这里使用的“Integer”一词令人困惑——返回的值是“整数”意义上的整数,但数据类型仍然是由call参数确定的double或decimal。事实上,如果您查看您提供的链接中的“语法”部分,您会看到这一点。@peterG我同意文档缺乏明确性。Math.Floor Method.NET Framework 4.5其他版本返回的最大整数小于或等于指定的数字……直接来自MSDN,无论如何,围绕它的CInt都可以工作, TY@Dinotom这里使用的“Integer”一词令人困惑——返回的值是“整数”意义上的整数,但数据类型仍然是由call参数确定的double或decimal。事实上,如果您查看您提供的链接中的“语法”部分,您会看到这一点。@peterG我同意文档缺乏明确性。