Если считать в double (java) получается 3297.999999, дробная часть отбрасывается при преобразовании в int.
Почему получается 3297.999999?
Как известно из математики чисел с плавающей точкой бесконечно много, а в машине это бесконечное множество представляется конечным числом бит. Поэтому представление приблизительное.
В данном конкретном случае при умножении разрядов для мантиссы нехватило видимо и единичка младшего разряда потерялась.
Процессор факт умножает не столбиком :)
Почему у всех одинаково? Так это все делается в конечном счете через одну и туже инструкцию процессора.
Интересно (ради развлечения) посмотреть на результат на архитектурах отличных от x86 и её 64-bit версий.