From: nobu@... Date: 2020-09-29T15:30:58+00:00 Subject: [ruby-core:100217] [Ruby master Feature#13153] Inconsistent sprintf formatting for 0 value Issue #13153 has been updated by nobu (Nobuyoshi Nakada). This behavior comes from ANSI-C, and same as printf(1). I don't think this is a bug. ---------------------------------------- Feature #13153: Inconsistent sprintf formatting for 0 value https://bugs.ruby-lang.org/issues/13153#change-87806 * Author: RickHull (Rick Hull) * Status: Open * Priority: Normal ---------------------------------------- ```ruby 0.upto(5).map { |i| "%#0.2x" % i } # expect: ["0x00", "0x01", "0x02", "0x03", "0x04", "0x05"] # actual: ["00", "0x01", "0x02", "0x03", "0x04", "0x05"] ``` Notice that the 0x is omitted when i == 0. The 0x prefix is specified by '#' (and 'x') in the format string. If this is expected behavior, then it sure is surprising and undocumented AFAIK. *goes back to double check* Behavior on 2.4.0 confirmed on 2.3.3 as well. -- https://bugs.ruby-lang.org/ Unsubscribe: