なかだです。

At Mon, 27 Nov 2000 16:11:44 +0900
Junya Ishikawa <ishikawa / osa.shq.jri.co.jp> wrote:
> ruby-1.6.1で、sprintfを使って、数字に前0をつけてある固定長に変換しよう
> とすると、変換前の数字が0で始まっている場合、期待どおりの変換を行なっ
> てくれません。

  0 で始まってると 8 進数と見なされるってことだと思いますが、そもそも
String に %d を指定しようってあたりがおかしいような気がします。

> irb(main):001:0> printf "%07d\n", "0123"
> 0000083

printf "%07d\n", "0123".to_i
0000123

> ruby-1.4.6では、変換前の文字列が0で始まっていても、期待通りの結果が得
> られます。
> irb(main):002:0> printf "%07d\n", "0123"
> 0000123
> 
> 環境は、Solaris 2.5 (sparc)なので、環境依存か?と思って、Linuxでもコン
> パイルしてみたところ、同じ現象が発生しました。何か仕様が変わったので
> しょうか?

  いつから変わったかはちと未確認ですが。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦