• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#のToString("c"))

C#のToString("c")で通貨記号が取れない理由と解決方法

このQ&Aのポイント
  • C#でテキストボックスに金額を記入し、数値として使用する方法について説明します。
  • "ToString("c")"を使用する際に通貨記号が取れない理由と、代替の方法について解説します。
  • 通貨記号を取り除くためには、文字列操作を行う必要があります。具体的なコード例を提供します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

先の回答にも書きましたが,NumberStyles.Currencyを使ってください。 これはMSDNにもあるとおり,AllowCurrencySymbolやAllowLeadingSign,AllowThousandsを含みます。 AllowThousandsを含むため,","を削除する処理も不要です。

noname#207939
質問者

お礼

言語の設定や負符号に関係なくNumberStyles.Currencyで可能なはず、ということですね? まだうまくいってませんが、使い方を間違っているのと思いますのでいろいろやってみます。 ありがとうございました。

その他の回答 (2)

回答No.2

.ToString("c")の逆操作がしたい,ということでしょうか。 それであれば,Int32.ParseやInt32.TryParseにNumberStyles.Currencyを与えれば可能です。 MSDN: Int32.Parse メソッド (String, NumberStyles) (System) http://msdn.microsoft.com/ja-jp/library/c09yxbyt.aspx MSDN: Int32.Parse メソッド (String, NumberStyles, IFormatProvider) (System) http://msdn.microsoft.com/ja-jp/library/9yaffedz.aspx MSDN: Int32.TryParse メソッド (String, NumberStyles, IFormatProvider, Int32) (System) http://msdn.microsoft.com/ja-jp/library/zf50za27.aspx MSDN: NumberStyles 列挙体 (System.Globalization) http://msdn.microsoft.com/ja-jp/library/system.globalization.numberstyles.aspx

noname#207939
質問者

お礼

ご回答ありがとうございました。

noname#207939
質問者

補足

正数では成功したのですが、負数ではうまくいきませんでした。 もう少し試してみます。 int tempNum = -12345; textBox1.Text = tempNum.ToString("c"); string stTarget; stTarget = textBox1.Text; Console.WriteLine("1stTarget=" + stTarget); stTarget = stTarget.Replace(",", ""); Console.WriteLine("2stTarget=" + stTarget); int tempNum2 = int.Parse(stTarget, System.Globalization.NumberStyles.AllowCurrencySymbol); Console.WriteLine("tempNum2=" + tempNum2);

回答No.1
noname#207939
質問者

お礼

ご回答ありがとうございました。

noname#207939
質問者

補足

”通貨記号”なので不定になるので言語を設定して確実に\になるようにして削除する、ということでしょうか? ”言語を設定する”のがよくわからないのでまだ実現できてませんが、調べてみます。

関連するQ&A