我只想在千分之一允许使用逗号的数字字符串值,但是该代码无法正常工作,并成功地解析了" 2,22",该" 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文化中允许数千种(它具有数字formatinfo.numbergroupsizes设置为3)吗?还是我想念STH?
使用.NET 4.5
如果要验证字符串匹配模式n,nnn,nnn,nnn ...尝试正则表达式,类似于
Regex r = new Regex(@"^d{1,3}(,ddd)*$");
if(r.IsMatch(yourNumber))
...