The binary representation of d=9.2 should be something like 9.199999999999999289457264239899814128875732421875.
So 10d should be 91.999999999xxxxxxx.
Let int a = 10d, isn't it truncated as 91 instead of 92?
When the multiplication is performed, the real-number result is rounded to fit in the IEEE-754 binary64 format, and the result after rounding is exactly 92.
When 9.2 is converted to the nearest value representable in binary64, the result is indeed 9.199999999999999289457264239899814128875732421875. Using hexadecimal for the significand, this is 1.266666666666616•23.
When we multiply this by 10 using real-number arithmetic, the result is B.7FFFFFFFFFFFC16•23. (This is easy to see. Starting from the right, 6 times 10 is 6010, which is 3C16. So we write the C digit and carry the 3. In the next column, 6 times 10 is again 3C16, and adding the carried 3 gives 3F16. We write the F digit and carry the 3. Continuing produces more F digits and propagates a carry of 3 up to the front, where 2 times 10 plus a carry of 3 is 2310 = 1716, so we write the 7 and carry the 1. Finally 1 times 10 plus 1 is 1110 = B16.)
Let’s adjust that number to normalize it to have a single bit left of the radix point. Shifting the significand right three bits and compensating by adding three to the exponent gives 1.6FFFFFFFFFFFF816•26. Now we can see this number has too many bits to fit in the binary64 format. The initial 1 has one bit, the next 13 digits have four bits, and the final 8 has one significant bit (10002, and the trailing zeros are mere placeholders, not significant bits). That is 54 bits, but the binary64 format has only 53 for the significand (52 are stored explicitly in the significand field, one is encoded via the exponent field). So we must round it to fit in the format.
The two nearest representable values are 1.6FFFFFFFFFFFF16•26 and 1.700000000000016•26. They are equally distant from 1.6FFFFFFFFFFFF816•26, and the rule for breaking ties is to choose the number with the even low bit. So the result is 1.700000000000016•26.
Thus, multiplying 9.199999999999999289457264239899814128875732421875 by 10 in binary64 arithmetic yields 1.716•26, which is 92.