
C#で、テキストボックスに金額を記入し、のちに取り出して数値として使いたいのですが、ToString("c")でフォーマットして記入した場合は通貨記号が取れませんでした。
なぜでしょうか?
何か良い方法がありますでしょうか?
よろしくお願いいたします。
//ToString("c")を使わないで記入した場合
textBox1.Text = "-\\12345";
string stTarget;
stTarget = textBox1.Text;
Console.WriteLine("1stTarget=" + stTarget);
stTarget = stTarget.Replace(",", "");
Console.WriteLine("2stTarget=" + stTarget);
stTarget = stTarget.Replace("\\", "");
Console.WriteLine("3stTarget=" + stTarget);
//出力結果
//1stTarget=-\12,345
//2stTarget=-\12345
//3stTarget=-12345
//ToString("c")を使って記入した場合
int tempNum = -12345;
textBox1.Text = tempNum.ToString("c");
stTarget = textBox1.Text;
Console.WriteLine("1stTarget=" + stTarget);
stTarget = stTarget.Replace(",", "");
Console.WriteLine("2stTarget=" + stTarget);
stTarget = stTarget.Replace("\\", "");
Console.WriteLine("3stTarget=" + stTarget);
//出力結果
//1stTarget=-\12,345
//2stTarget=-\12345
//3stTarget=-\12345
No.3ベストアンサー
- 回答日時:
先の回答にも書きましたが,NumberStyles.Currencyを使ってください。
これはMSDNにもあるとおり,AllowCurrencySymbolやAllowLeadingSign,AllowThousandsを含みます。
AllowThousandsを含むため,","を削除する処理も不要です。
言語の設定や負符号に関係なくNumberStyles.Currencyで可能なはず、ということですね?
まだうまくいってませんが、使い方を間違っているのと思いますのでいろいろやってみます。
ありがとうございました。
No.2
- 回答日時:
.ToString("c")の逆操作がしたい,ということでしょうか。
それであれば,Int32.ParseやInt32.TryParseにNumberStyles.Currencyを与えれば可能です。
MSDN: Int32.Parse メソッド (String, NumberStyles) (System)
http://msdn.microsoft.com/ja-jp/library/c09yxbyt …
MSDN: Int32.Parse メソッド (String, NumberStyles, IFormatProvider) (System)
http://msdn.microsoft.com/ja-jp/library/9yaffedz …
MSDN: Int32.TryParse メソッド (String, NumberStyles, IFormatProvider, Int32) (System)
http://msdn.microsoft.com/ja-jp/library/zf50za27 …
MSDN: NumberStyles 列挙体 (System.Globalization)
http://msdn.microsoft.com/ja-jp/library/system.g …
この回答への補足
正数では成功したのですが、負数ではうまくいきませんでした。
もう少し試してみます。
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
- 回答日時:
この回答への補足
”通貨記号”なので不定になるので言語を設定して確実に\になるようにして削除する、ということでしょうか?
”言語を設定する”のがよくわからないのでまだ実現できてませんが、調べてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
VBAマクロについて教えてく...
-
クリックさせる
-
0歳児の指しゃぶりに関して
-
C#のスタートアップオブジェク...
-
JVM(Java仮想マシン)の動作原理...
-
描画した線や画像などを消す方法。
-
localhostで.htmlを表示したい
-
ファイルの解放
-
ウィンドウを最前面にできません
-
入出力について
-
Firewall-1におけるHTTP通信に...
-
onUnload時にジャンプ先のURLを...
-
JAVA 入力チェックについて。
-
小文字を大文字に変換する方法...
-
Labelコントロールに数字を代入...
-
C# 匿名メソッドについて
-
ByteArrayInputStreamを配列に
-
javascriptからjavaを呼び出したい
-
drawStringで文字間隔の調整
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
0歳児の指しゃぶりに関して
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
配列のメソッド
-
CALLされていないメソッドを見...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
VBPをダブルクリックするとたま...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
Application.Wait の参照設定
-
C#.net Define文
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA でExcelを終了したい...
おすすめ情報