よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

June 21, 2003 [おもひで]

[Ruby] setlocaleとRuby

昨日の話の続きなんだけど、Ruby-GNOME2のようなsetlocaleを内部的に呼び出すライブラリは、一部のlocaleでString#to_fもうまく動かないのね...。

require 'glib2'
p num = 12.34
p str = num.to_s
p str.to_f

結果

$ ruby test.rb
12,34
"12,34"
12,0

[Ruby-GNOME2] pygtkでは

この問題は発生しない、と指摘された。なんでだろ〜(音頭)ってpygtkのソース見たら、内部的にsetlocale(LC_NUMERIC, "C")してる。

/* set the LC_NUMERIC locale back to "C", as Python requires
 * that it be set that way. */
setlocale(LC_NUMERIC, "C");
return;

gtk/gtkmodule.cの中ね。

こんなんで良いのかな....。

[Ruby-GNOME2] とあまり考えもせず

この不具合を報告してきたJoaoがいいんじゃない?って言ってたので上記修正を適用。


編集