From: retro via ruby-core Date: 2025-11-09T12:22:01+00:00 Subject: [ruby-core:123749] [Ruby Bug#21677] Integer("08") raises an ArgumentError Issue #21677 has been updated by retro (Josef ��im��nek). Just adding to Ufuk's great explanation and make it super clear, to fix your case, you need to call `Integer('08', 10)` and `Integer('09', 10)`. ---------------------------------------- Bug #21677: Integer("08") raises an ArgumentError https://bugs.ruby-lang.org/issues/21677#change-115140 * Author: ben (Bj��rn Engelmann) * Status: Rejected * ruby -v: 3.3.0 - 3.3.8 * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ruby version: tried it with 3.3.0 and 3.3.8 When running the following ruby script: p Integer("04") p Integer("05") p Integer("06") p Integer("07") p Integer("08") I get the following output: 4 5 6 7 :307:in `Integer': invalid value for Integer(): "08" (ArgumentError) from bug.rb:7:in `
' it seems that "08" and "09" are for some reason not parsable, while all other number "00", "01", "02", "03", "04", "05", "06", and "07" are. I would have expected the Integer-parser to have consistent behaviour, independent of the numbers that are parsed... By the way: it the same for "008", "0008" and so on. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/