none
ToString("c")による"-¥1,000"の表記について RRS feed

  • 質問

  • decimal mny = -1000;
    string cmny = mny.ToString( "c" ); // cmny="-¥1,000"

    普通、¥-1,000ですよね?

    ToString("¥#、##0")とか書いてもうまくいかないのですが、何かよき方法はないでしょうか?

     

    2006年6月5日 2:16

回答

  • 一応解決しているようですが、ちょっとだけ補足
     hotcake さんからの引用

    普通、¥-1,000ですよね?

    c 形式の文字列表記がどのようになるかは、ソフトウェアの利用者の環境に依存しています。

    私の環境だと ¥1,000- となります。これは、個々のユーザが通貨の表示形式をカスタマイズできるようになっているためであり、帳票印刷の指定形式がなされているとかでもない限りは、できるかぎり c 形式にしておくのがアプリケーションとしては望ましいと思われます。(帳票で形式が指定されていてもダイアログなどでは常に c 形式にしておく)

     

    設定箇所は、WindowsXP であれば「地域と言語のオプション」の「地域オプション」の「通貨」タブにある「負の値の形式」です。

     

    2006年6月6日 3:35

すべての返信

  • "\\" + i.ToString("#,##0");

    ちがう?

    2006年6月5日 3:06
  •  hotcake さんからの引用
    普通、¥-1,000ですよね?
    ToString("¥#、##0")とか書いてもうまくいかないのですが、何かよき方法はないでしょうか?

    「-¥1,000 」 ではなく、「¥-1,000」 にしたいということですよね?
    (== マイナスの位置 に不満があると読み取りました)


    decimal dcMoney = -1000M;

    string stMoney = dcMoney.ToString(@"\\#,##0;\\-#,##0");

    MessageBox.Show(stMoney);

     

    では、いかがでしょうか?

    # ↓ あら、かるさんと被ってしまいましたね。

    2006年6月5日 4:23
  •  hotcake さんからの引用

    ToString("¥#、##0")とか書いてもうまくいかないのですが、何かよき方法はないでしょうか?

    myDecimal.ToString("\\\\#,##0;\\\\-#,##0")
    myDecimal.ToString(@"\\#,##0;\\-#,##0")
    とかかな。
    2006年6月5日 4:25
  • 中さん、辛島さん、じゃんぬねっとさん、ありがとうございます。

    ToString(@"\\#,##0;\\-#,##0");

    これで無事解決しました。

    2006年6月5日 6:22
  • 一応解決しているようですが、ちょっとだけ補足
     hotcake さんからの引用

    普通、¥-1,000ですよね?

    c 形式の文字列表記がどのようになるかは、ソフトウェアの利用者の環境に依存しています。

    私の環境だと ¥1,000- となります。これは、個々のユーザが通貨の表示形式をカスタマイズできるようになっているためであり、帳票印刷の指定形式がなされているとかでもない限りは、できるかぎり c 形式にしておくのがアプリケーションとしては望ましいと思われます。(帳票で形式が指定されていてもダイアログなどでは常に c 形式にしておく)

     

    設定箇所は、WindowsXP であれば「地域と言語のオプション」の「地域オプション」の「通貨」タブにある「負の値の形式」です。

     

    2006年6月6日 3:35
  • Lady.BUGさん、ありがとうございます。

    確かに、自分のPCでは「通貨」タブにある「負の値の形式」で、"-¥1、1”になってました。

     

     

     

    2006年6月6日 9:01