Левое нулевое число имеет странные результаты - PullRequest
0 голосов
/ 09 апреля 2020

Я пытался сделать некоторую сумму в числах и получить число с очень левым нулем и начать получать проводные результаты

142 + 3 = 145

но 0142 + 3 = 101

Каков тип данных базового номера для ruby? (я использую repl 2.6.3)

1 Ответ

2 голосов
/ 10 апреля 2020

Это описано в Ruby документации " Numbers ":

Вы можете использовать специальный префикс для записи чисел в десятичном, шестнадцатеричном, восьмеричном или двоичном форматах. , Для десятичных чисел используйте префикс 0d, для шестнадцатеричных чисел используйте префикс 0x, для восьмеричных чисел используйте префикс 0 или 0o, для двоичных чисел используйте префикс 0b. Алфавитный c компонент числа не чувствителен к регистру.

Медитируйте на этом:

0d170 # => 170
0D170 # => 170

0xaa # => 170
0xAa # => 170
0xAA # => 170
0Xaa # => 170
0XAa # => 170
0XaA # => 170

0252  # => 170
0o252 # => 170
0O252 # => 170

0b10101010 # => 170
0B10101010 # => 170

Это очень распространено среди языков программирования.

Если понятие числовых баз чуждо, то это может помочь:

...