我在一臺計算機上執行此操作時遇到問題:
字串 S1 = "000,00"; 十進制 D1 = Decimal.Parse(S1);
System.FormatException: (*) in System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) in System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)
它適用于其他計算機。
我嘗試了所有想到的東西,其中包括:
Decimal.Parse(S1, CultureInfo.InvariantCulture);
Decimal.Parse(S1, new CultureInfo("pl-PL"));
Decimal.Parse(S1, new CultureInfo("en-US"));
將“,”更改為“。” 嘗試了 decimal.Parse、Double.Parse、double.Parse = 同樣的問題。
uj5u.com熱心網友回復:
我前段時間遇到過類似的問題。選項CultureInfo.InvariantCulture并NumberStyles.Any解決了問題。
提供InvariantCulture原因決議以使用“,”字符作為千位分隔符。提供NumberStyles.Number允許數字格式,其中包括 AllowThousands 選項:
double.TryParse(Value, NumberStyles.Number, CultureInfo.InvariantCulture, out result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/420769.html
標籤:
