+ 1

using double

I m writing this code int main() { double time = 5/2; cout << time ; return 0; } and is giving a result of 2 why is it happening, and how would I get result 2.5

25th Oct 2017, 6:09 PM
Dikshit
Dikshit - avatar
3 Respostas
+ 3
5 divided by 2 is 2 with a % of 1. That's why you got 2, you're doing division. Use a floating decimal point for doubles. Example (based upon 5/2 fraction): double time = 2.5;
25th Oct 2017, 6:14 PM
AgentSmith
+ 3
Try this: double time = 5.0/2.0; or double time = 5.0/2; 😊😊
25th Oct 2017, 6:18 PM
Cool Codin
Cool Codin - avatar
+ 3
lol Maybe Lokesh is right and I am an idiot. :D I thought 5/2 was just your weird way of avoiding decimals. haha As Cool Codin said though, if you want to use doubles in division, don't forget the decimal and it'll work as you think it should. To explain his second example, the 5.0 will cause the 2 to be converted to a double also. This is called type casting. You can do it implicitly or explicitly. Another example: double time = (double) 5/2; ^That'll return 2.5 also by casting the double type onto the integers before calculation.
25th Oct 2017, 6:24 PM
AgentSmith