В нижней части документации Kernel # sprintf он имеет следующий пример:
sprintf("%u", -123) #=> "..4294967173"
Когда я делаю это на 1.8.7, я получаю такой результат:
"..18446744073709551493"
Это похоже на ожидаемый результат, но определенно не так.
Однако, когда я делаю это на 1.9.2, я получаю то же число, что и строка:
ruby-1.9.2-p136 :001 > sprintf("%u", -123)
=> "-123"
Итак, на самом деле здесь два вопроса.
Почему я получаю вывод, отличный от того, о котором говорится в документации, и
- Почему Ruby 1.9.2 ведет себя иначе, чем 1.8.7,даже если документация достаточно конкретна относительно типа вывода?