Почему целочисленные div и mod округляются до нуля?

В отличие от C, в Java это результат x / y и x% y хорошо определен даже для отрицательных операндов. Удивительно, но он определяется округлением до нуля, а не округлением вниз (т. е. до отрицательной бесконечности). Кто-нибудь воспользовался этим определением?

В большинстве случаев мне все равно, но иногда мне приходилось обходить это, например, при вычислении индекса с использованием modulo array.length .

Это не напыщенная речь, мне действительно интересно, можно ли использовать это определение.

5
задан maaartinus 15 April 2011 в 21:39
поделиться