我偶然发现了CInt的一个问题,并将double转换为整数。CInt不会一致地舍入Double值 - 如何删除小数部分?
问题如下:
CInt(10.5) 'Result is 10
CInt(10.51) 'Result it 11, but I expected 10...
我习惯了C#风格转换,其中(int) 10.51
为10
如问题有关Integer.Parse vs CInt指出,结果只是以某种方式四舍五入。
但是,我所需要的只是获取整数部分并丢弃小数部分。如何在VB.NET中实现这种类型的转换?经过一番研究,我发现我可以使用Fix()
函数来实现这个诀窍,但它是最好的选择吗?
更糟:CINT(10.5)= 10,但CINT(11.5)= 12如果整数部分甚至四舍五入的0.50000000是向下,对于奇数它是由! – Martin