「$1,250.00」のような文字列を受け入れて、C# で 10 進数に変換するにはどうすればよいですか?
replace("$", "") and (",", "") を実行するだけですか、それともこの種の入力を処理する別の方法がありますか?
AllowCurrencySymbol オプション (およびその他のサポート オプション) を使用して Decimal.Parse を試しましたか?
var d = Decimal.Parse(input,
NumberStyles.AllowCurrencySymbol |
NumberStyles.AllowDecimalPoint |
NumberStyles.AllowThousands);
今フォーマットで:)
decimal val = Decimal.Parse(
Value.Replace(" ", ""),
NumberStyles.AllowThousands
| NumberStyles.AllowDecimalPoint
| NumberStyles.AllowCurrencySymbol
);
私はちょうどやり
Replace("$", "")
ますReplace(",", "")
か [?]
いいえ。まず、このようなコードは維持するのが楽しくありません。第二に、「$」は世界で唯一の通貨記号ではなく、「,」は唯一の千単位の区切り記号ではありません。つまり、あなたが考えているようなコードは、グローバリゼーションの問題を困難にします。
この種の入力を処理する別の方法はありますか?
はい。Decimal.Parse
で使用NumberStyles.Currency
:
string s = "$1,250.00";
decimal d = decimal.Parse(s, NumberStyles.Currency);
これでうまくいくはずです:
string money = "$1,250.00";
money = money.Replace('$',' ');
decimal test = Convert.ToDecimal(money);