VB.Net使用CInt转型非整数值时需要注意的问题

今天帮客户维护一个VB.Net项目时遇到的问题, 以前没注意过。在此记录下来,提醒不知道的朋友注意。

摘自MSDN :

将一个非整数值转换为整型时,整数转换函数(CByte、CInt、CLng、CSByte、CShort、CUInt、CULng 和 CUShort)将移除小数部分,并将该值舍入为最接近的整数。

如果小数部分正好是 0.5,整数转换函数将其舍入为最接近的偶数整数。例如,0.5 舍入为 0,1.5 和 2.5 都舍入为 2。这有时称为“四舍六入五成双”,其目的是弥补在将许多这样的数字相加时可能会累积的偏量。8

Console.WriteLine(CInt(7.5)) '8

Console.WriteLine(CInt(8.5)) '8

Console.WriteLine(CInt(8.6)) '9