The two operands (1 and 3) are integers, therefore integer arithmetic (division here) is used. Declaring the result variable as double just causes an implicit conversion to occur *after division*.

Integer division of course returns the true result of division rounded towards zero. The result of `0.333...`

is thus rounded down to 0 here. (Note that the processor doesn’t actually do any rounding, but you can think of it that way still.)

Also, note that if *both* operands (numbers) are given as floats; 3.0 and 1.0, or even just the *first*, then floating-point arithmetic is used, giving you `0.333...`

.