変数%の丸め方は、案の定、0ORタイプの切り捨てなので、マイナスが出るときはFLOOR()と1ずれることがあるね。