Home »

Why doesn't the following code give the desired result?

Question ListCategory: cWhy doesn't the following code give the desired result?
milleranthony7 author asked 9 years ago
1 Answers
jessica537 author answered 8 years ago

int x = 3000, y = 2000 ;
long int z = x * y ;

Here the multiplication is carried out between two ints x and y, and the result that would

overflow would be truncated before being assigned to the variable z of type long int.

However, to get the correct output, we should use an explicit cast to force long arithmetic as

shown below:

long int z = ( long int ) x * y ;

Note that ( long int )( x * y ) would not give the desired effect.

Please login or Register to Submit Answer