From: paptimusx Date: 2011-08-23T14:53:12+09:00 Subject: [ruby-list:48330] 1.25を %10.1f で出力したときバージョンにより表示に違いがでるのは何故でしょうか。 1.25を %10.1f で出力したとき、表示に違いがでるのですが、何故でしょうか。 Rubyを含むいくつかの言語で試しました。すべてWindows版です。 Rubyの場合、1.8.6と1.8.7で違いが出ます。意図して変更したものでしょうか。 JRubyとIronRubyは1.8.6のときと同じ結果です。 ほぼ同じバージョンでmingwとcygwinで違ってくるのは下にあるCライブラリの影響かとも 思いましたが、C/C++の結果を見る限りそうでもなさそうです。 いわゆるJIS丸めの問題かとも思ったのですが、違う気もします。 簡単なので書くまでもないのですが、Ruby版だけソースをメモします。 a = 1.25 print a,"\n" printf "%10.1f\n", a 素 1.25 Excel 1.3 Ruby ruby1.8.6 1.3 mswin32 ruby1.8.7 1.2 mingw ruby1.8.7 1.2 mswin32 ruby1.9.2 1.2 mingw ruby1.9.2 1.2 mswin32 1.8.7 cygwin 1.3 1.8.7 mingw 1.2 JRuby161 1.3 IronRuby1.0 1.3 Perl JPerl 5.004 1.3 perl 5.8.8 1.3 perl 5.10.1 1.2 cygwin C/C++ g++-4 (cygwin) 1.2 vc4 1.3 vc6 1.3 vs2008 1.3 C# csc 3.5 1.3 Fortran pws 1.3 compaq 1.2 ifort 1.2 gfortran(cygwin) 1.3 gcc4.4.0 g95 (mingw) 1.2 gcc4.4.4