はじめまして。石川と申します。

ruby-1.6.1で、sprintfを使って、数字に前0をつけてある固定長に変換しよう
とすると、変換前の数字が0で始まっている場合、期待どおりの変換を行なっ
てくれません。

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

0で始まっていなければ、期待どおりの結果になります。
irb(main):002:0> printf "%07d\n", "123"
0000123

ruby-1.4.6では、変換前の文字列が0で始まっていても、期待通りの結果が得
られます。
irb(main):002:0> printf "%07d\n", "0123"
0000123

環境は、Solaris 2.5 (sparc)なので、環境依存か?と思って、Linuxでもコン
パイルしてみたところ、同じ現象が発生しました。何か仕様が変わったので
しょうか?


  _/ (株)日本総合研究所 情報システム部 _/  TEL:06-6534-5367
 _/   石川淳也 (ISHIKAWA, Junya)      _/   FAX:06-6534-5328
_/ mailto:ishikawa / osa.shq.jri.co.jp _/    内線:923-2361