我想只在数千个地方允许使用逗号的数字字符串值,但是 这段代码不能正常工作,并成功解析了千位上没有逗号的“2,22”。
double dollarValue;
var dollarStringValue="2,22";
var usCulture = CultureInfo.CreateSpecificCulture("en-US");
var allowedNumberStyle = NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint;
if (double.TryParse(dollarStringValue, allowedNumberStyle, usCulture, out dollarValue))
{
// This is parsed successfully to 222
Console.WriteLine(dollarValue);
}
这是在en-Us文化中NumberStyles.AllowThousands的预期行为(它将NumberFormatInfo.NumberGroupSizes设置为3)?或者我错过了吗?
使用.Net 4.5
答案 0 :(得分:1)
如果你想验证字符串匹配模式n,nnn,nnn,nnn ...尝试使用正则表达式,比如
Regex r = new Regex(@"^\d{1,3}(,\d\d\d)*$");
if(r.IsMatch(yourNumber))
...