double variable = Convert.ToDouble(5/100);
Will return 0.0 but i expected 0.05
What can / must i change to get 0.05
because the 5 i
Unlike real-world, computers treat mathematical operations a bit differently though there's no significant difference once we understand why it behaves so.
1.) Why it behaves like this ?
Note that, integers are whole numbers and the variables of type integer can only store whole numbers and can not store or recognize decimal numbers. when you say 5/100, both 5 and 100 are integer literals for the computers and it is called integer division. The result should be 0.05 but since this is an integer division the result would also be integer and as I said integers cannot store decimal point values, the trailing part after "." (decimal point) is ignored completely and hence the result is 0.
Adding more to this, though you're converting the result to double, it does not make any difference because before it is actually converted to a double the result is already 0 and it happens to convert integer 0 to double which ultimately results into 0.0.
2.) How to get your desired output ?
Other answers explain the solution very well, so I kindly request you to refer to those answers rather re-inventing the wheel for you.
Hope this helps.