Busco una explicación sencilla de cómo funciona módulo de operando de Ruby y por qué, en Rubyoperando el módulo de rubí en comparación con php
puts 4 % 3 # 1
puts -4 % 3 # 2 <--why?
puts -4 % -3 # -1
pero en PHP:
<?php
echo 4 % 3; # 1
echo -4 % 3; # -1
echo -4 % -3; # -1
parece a mí como -4% 3 es actalmente 8% 3 (8 es la diferencia entre 4 y -4).
El comportamiento de X% de Y, donde X o Y son negativas es una opción de diseño (que puede ser "indefinido comportamiento"). Nada más y nada menos. Esta sección sobre [división entera] (http://www.davidflanagan.com/2006/06/integer-division-and-negative-numbers.html) y los comentarios pueden llevar a más ideas. IIRC la razón de este "comportamiento extraño" en Ruby se discute en el ML. –
Si Ruby hace las cosas de una manera, y PHP hace las cosas otra, ¡supongamos que Ruby lo está haciendo de la manera correcta! j/k –