パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

小数点はコンマかピリオドか」記事へのコメント

  • by Anonymous Coward
    国際化プログラミングでは、数値表現は日付や時間と同様にロケールによって変わるものです:
    ・数値: 1.0とか1,0とか、 -1とか1-とか
    ・通貨: 1,000,000 とか 1.000.000とか
    ・パーセント: 10% とか %10とか
    そのため、数値は各言語環境で用意している国際化フォーマット用のライブラリを使って文字列に変換します。
    標準が変わったとしても、変更があるのは所詮ライブラリの中の話です。
    # 数値フォーマットライブラリ使ってないで自分でカンマ入れて
    • 文字列と意味 (この場合数字) の変換を、国際化ライブラリで吸収する話は当然として。

      たとえば、値域を [最小値,最大値] と入力する、という仕様はどうしたものでしょうか。[1,2,3] って言われても、1.2から3までなのか。1から2.3までなのかわかんないし。

      いや、こんな仕様、変えてしまえばいいんですけどね。問題は、仕様を考えるに当たり、「世界中の表記と習慣を知っておけ」といわれたって困る、ってことな
      • 元AC (#413112) です。

        > 問題は、仕様を考えるに当たり、「世界中の表記と習慣を知っておけ」といわれたって困る、ってことなんです。

        だから国際ライブラリ化して、言語の数値リテラルと一線を画するんですよ。
        数値リテラルはあくまでリテラルであって、自然言語での数値表現とは別のものにしているんです。

        今回
        • 数字リテラルのパース・表示は国際化ライブラリにお任せ。それは了解。
          で、数字リテラルに "," が含まれる環境があるので、ふたつの数字リテラルの表示・入力を区切るのに "," を使っちゃいけない。それも了解。

          じゃ、ふたつの数字リテラルを区切るのに使ってもよい文字と、それを使ってもよい理由を教えてください。という話です。この部分は、数字リテラル本体ではないので、国際化ライ
          • > でも、今すぐの問題解決には役に立ちません。

            国際化ライブラリを使う、で現状には特に問題ないのでは。
            ようは自然言語の「数値表記文字列」とプログラミング言語文法の「数値リテラル」は最初から「別物として扱っている」ということなのですが。

            例を使うと、あるプログラミング言語では範囲を [1.2, 3]としていた場合、自然言語の数値表記標準が変わったからといって[1,2, 3]に変える必然性はまったく無いのです。
            1,2というような「リテラル」を使う言語なら文法が[1,2:3]のようにわかりやすくしているでしょう?
            • それで、一方のほう。

              「体重:56.4,58」と、体重の範囲を出力するプログラムがすでにあったとして、どうすればいいのですか? このままだと、たとえば仏文環境なら、「(体重のフランス語): 56,4,58」と表示されます。これじゃ、わけがわからないです。

              私としては、最初から自然言語の話しかしていないつもりです。
              • > 「体重:56.4,58」と、体重の範囲を出力するプログラムがすでにあったとして、どうすればいいのですか? このままだと、たとえば仏文環境なら、「(体重のフランス語): 56,4,58」と表示されます。これじゃ、わけがわからないです。

                ロケールに応じて、自分でそれぞれ用意したフォーマッタとパーザーを選択すればいいだけでしょ。
                この場合だと、パ
              • そう。結局、ロケールそれぞれにフォーマッタやパーサを用意するしかないのです。さらに言うと、入力・表示については、言語ごとに仕様を作り直さなくてはならないということ。

                というわけで、「国際化プログラミングでは、数値表現は日付や時間と同様にロケールによって変わるものです [srad.jp]」では不十分であり、ロケールによる表現の変化に合わせ、周辺の表現も適切に考えておく必要があります。

                また、「変更があるのは所詮ライブラリの中の話です [srad.jp]」だけでは収まらず、ライブラリ
              • >というわけで、「国際化プログラミングでは、数値表現は日付や時間と同様にロケールによって変わるものです [slashdot.jp]」では不十分であり、ロケールによる表現の変化に合わせ、周辺の表現も適切に考えておく必要があります。
                >また、「変更があるのは所詮ライブラリの中の話です [slashdot.jp]」だけでは収まらず、ライブラリの変更にあわせて周辺の表現を作り直す必要があります。
                >たとえ数字と記号しか表示しないプログラムだとしても、サポート各言語ごと
              • > いや、だから、そこまで含めて常識なんですけど。
                そそ。常識。それはそう。

                でだ。本題に従うなら、ここのコメントは、3つのことを考えなければいけないわけだ。

                1. うわ。世界には小数点がコンマの文化もあったんだ。
                2. 英語圏 (変な単語) の小数点をピリオドに統一。されるの?
                3. 国際標準じゃぁ、小数点はコンマだってぇ?

                この中で、1.については、ロケール+メッセージカタログ。この解で十分。
                2.については、少なくとも英語圏と日本語圏の人は、いまさら考えなくてもよいだろう。

                問題は 3. です。もし、3. が正しいということになったら、既存のロケール小数点表記が変更になるかも。そうすると、ja と en の、全表現を見直せ、ってことになります。メッセー

              • by Anonymous Coward on 2003年10月14日 2時01分 (#414123)

                話は戻って。この大元のコメント [slashdot.jp]、要約すると「ロケール変更、一発」と書いてある。

                は、

                国際化プログラミングでは、数値表現は日付や時間と同様にロケールによって変わるものです:
                ・数値: 1.0とか1,0とか、 -1とか1-とか
                ・通貨: 1,000,000 とか 1.000.000とか
                ・パーセント: 10% とか %10とか
                そのため、数値は各言語環境で用意している国際化フォーマット用のライブラリを使って文字列に変換します。
                標準が変わったとしても、変更があるのは所詮ライブラリの中の話です。
                # 数値フォーマットライブラリ使ってないで自分でカンマ入れてる輩は、もとから標準なんて気にしてないでしょう。

                のことだとするとロケールを変えるというよりも「ライブラリ実装変更、一発」でない?

                アプリケーションでの変更を考えると情報は足りてないと思うけど、数値⇔文字列だけの範囲でははずしていなるわけではないし、ことさら非常識として非難するのはどうかと思いますが。

                こんなに長く書けるネタだったら「スラッシュドットに聞け」で垂れ込んだらどうでしょう?
                親コメント

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

処理中...