tags:

views:

123

answers:

2

If you divide 2 / 3, it should return 0.66666666666666667. Instead, I get 0.0 in double value type and 0 in decimal.

My purpose is to divide even (e.g. 2 / 3) and round to 1 always to the nearest.

Any help?

+12  A: 

You're doing integer division, from the sounds of it. Try this:

decimal result = 2.0 / 3.0;

Or even force it to decimals for all of the operations:

decimal result = 2.0m / 3.0m;

This should give you a result more like you expect.

Reed Copsey
indeed its integer, dooh haven't thought....thanx, marking as answer as the first one
+3  A: 

Doing 2/3 is integer division which will not return the decimal place of the division. To get .666666667 you will need to do 2.0 / 3.0 which are both doubles to get the expected answer.

msarchet