Issue #22087 has been reported by Earlopain (Earlopain _). ---------------------------------------- Bug #22087: Octal format specifier in alternatve form ignores zero precision if value is zero https://bugs.ruby-lang.org/issues/22087 * Author: Earlopain (Earlopain _) * Status: Open * ruby -v: ruby 4.1.0dev (2026-05-29T14:34:40Z master 7a07a54298) +PRISM [x86_64-linux] * Backport: 3.3: UNKNOWN, 3.4: UNKNOWN, 4.0: UNKNOWN ---------------------------------------- For integer types, it is documented that zero as a value results in empty output: https://docs.ruby-lang.org/en/4.0/language/format_specifications_rdoc.html#:... This applies when `#` is not given. But with `#`, the octal format violates that statement: ```rb pp sprintf("%#.0b", 0) # => "" pp sprintf("%#.0B", 0) # => "" pp sprintf("%#.0x", 0) # => "" pp sprintf("%#.0X", 0) # => "" pp sprintf("%#.0o", 0) # => "0" ``` -- https://bugs.ruby-lang.org/