math.floor应该返回整数

时间:2013-10-13 16:11:35

标签: vb.net

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

    Dim cntr As Integer        
    cntr = Math.Floor(Math.Abs(itemCount / displaycount))

该代码在VS2012中产生蓝色波浪形,并注释“将Double转换为Integer时可能发生运行时错误”但是Math.Floor应该采用小数或双精度并返回整数。

2 个答案:

答案 0 :(得分:3)

“Math.Floor应该采用小数或双精度并返回一个整数。”不,不是。它返回与其参数相同类型的值。请参阅文档,例如Math.Floor Method (Double)

我原本期望VS建议修改在任务的RHS周围添加CInt();那不适合你吗?

答案 1 :(得分:1)

如果您需要整数作为结果,请考虑使用CIntIntFix函数。

  • CInt 使用银行家的舍入舍入到最接近的整数(向最接近的偶数数n.5轮)。

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

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

请参阅Conversion.Int MethodType Conversion Functions (Visual Basic)