我不想在我的代码中使用旧的 Visual Basic 方法,而且我对与旧的 CInt() Visual Basic 方法相对应的最新 VB.NET 方法感到困惑。
例如,
Dim n1 as Double : n1 = CInt(2.1111111) 'Gets only 2 without rounding it
Dim n2 as Double : n2 = CInt(2.7777777) 'Get only 2 without rounding it
我不想在我的代码中使用旧的 Visual Basic 方法,而且我对与旧的 CInt() Visual Basic 方法相对应的最新 VB.NET 方法感到困惑。
例如,
Dim n1 as Double : n1 = CInt(2.1111111) 'Gets only 2 without rounding it
Dim n2 as Double : n2 = CInt(2.7777777) 'Get only 2 without rounding it
您也可以在 VB.NET 中使用CInt。它是VB.NET 编译器支持的标准类型转换函数。没有理由避免它。
但是,几乎每个类型转换操作都会四舍五入到最接近的整数(包括其他方法,例如Convert.ToInt32等),而不是截断。您可以使用Int 或 Fix强制截断(它们对负数有不同的行为)。
请注意,如果您希望避免使用 VB.NET 特定的转换例程,则可以使用Math.Truncate和Math.Floor来执行与 Int/Fix 相同的操作。
附带说明 - Visual Basic 6.0 中的 CInt也执行了舍入。VB.NET 中的行为CInt
与 Visual Basic 6.0 中的相同。