Alex Rivera | Logout

CInt does not round Double value consistently - how can I remove the fractional part?

Asked 2011-10-07T07:20:28.097
12

I've stumbled upon an issue with CInt and converting a double to an integer.

The issue is the following:

CInt(10.5)  'Result is 10
CInt(10.51) 'Result it 11, but I expected 10...

I got used to C# style conversion where (int) 10.51 is 10.

As pointed out in the question about Integer.Parse vs CInt, the result is just rounded in some fashion.

However, all I need is to get only integer part and throw away the fractional one. How can I achieve such type of conversion in VB.NET? After some research I see that I can use the Fix() function to do the trick, but is it the best choice?

Edit
Report

1 Answer

1

I think you can try CInt(Math.Floor(10.51)) hope this helps

answered 2011-10-07T08:02:02.627

Your Answer