小数.TryParse返回false
本文关键字:false 返回 TryParse 小数 | 更新日期: 2023-09-27 18:16:40
文本框中的输入字符串为$10.00。我叫
decimal result;
var a = decimal.TryParse(text, NumberStyles.AllowCurrencySymbol, cultureInfo, out result);
cultureInfo
已知(en-US
)。为什么decimal.tryParse
返回false?
谢谢。
问题是您允许使用货币符号本身,但是您忽略了正确解析它所需的其他属性(例如小数点)。你真正想要的是NumberStyles.Currency
:
decimal.TryParse("$10.00", NumberStyles.Currency, cultureInfo, out result);
试试这个,您需要将NumberStyles.Number
包含在style
参数的按位组合值中:
decimal result;
var a = decimal.TryParse(text, NumberStyles.Number | NumberStyles.AllowCurrencySymbol, cultureInfo, out result);
您还忘了允许小数点:
decimal result;
var enUS = new System.Globalization.CultureInfo("en-US");
var a = decimal.TryParse("$10.00", System.Globalization.NumberStyles.AllowCurrencySymbol | System.Globalization.NumberStyles.AllowDecimalPoint , enUS, out result);
Console.WriteLine(enUS);
Console.WriteLine(a);
Console.WriteLine(result);