2012-06-24 3 views
4

Недопустимая восьмеричная ошибка в Ruby, как мне это пройти? У меня есть номер 0962833, который мне нужно отправить в API, но я не могу его отправить, так как я получаю эту недопустимую восьмеричную цифровую ошибку.Недопустимая восьмеричная ошибка

Мне нужна работа для этого, не превращая это число в строку, ноль не может быть удален, это необходимо.

+0

Ведущее значение «0» означает, что значение будет интерпретироваться как восьмеричное представление. Почему вы не можете удалить его? –

+0

Вы уверены, что '0962833' действительно является числом, а не строкой' '0962833'', которая просто состоит из цифр? Почтовые индексы, например, часто выглядят как номера, но это не так, они строки. –

ответ

5

Октальные цифры используют цифры от 0 до 7. Возможно, ошибкой может быть цифра 9 и цифра 8 в вашем номере. Если вы хотите передать номер «962833», попробуйте сначала преобразовать его в правильный восьмеричный номер с помощью онлайн-конвертера. Затем добавьте ведущее «0» и передайте его функции.

+3

Нет необходимости в онлайн-конвертере: '" 0962833 ".to_i (10) .to_s (8) =>" 3530421 "' :-) –

+0

Вы, ребята, правы, это не было проблемой номер, так как я меняю его к строке, проблема была с моей командой curl. Спасибо. –

3

0962833 - восьмеричное число из-за начального нуля, поэтому вы не можете иметь цифры выше 7. Если вам нужен начальный ноль, почему бы вам не превратить его в строку? Ведущие нули не имеют mathematical significance, так почему же должен быть способ представить их в числовом виде?

Смежные вопросы