这可能是一个简单而基本的问题,但是,想到与你确认.我正在编写代码来验证输入的文本信息是否是双倍.在我的代码中,下面是验证从文本框中获取的速度值的行.
double _mSpeed = 0.0;
if (!Double.TryParse(txtboxSpeed.Text, out _mSpeed))
throw new Exception("Input value for Speed is invalid !!!");
Run Code Online (Sandbox Code Playgroud)
但是,如果用户在速度文本框中提供4.4.4,则TryParse将文本字符串解析为444.0值.我想知道这是否正确.无论用户是否输入带有2个小数点的任何值,如果不解析为双倍或者预期的行为是什么,请分享您的想法.
在文化中.,小数分隔符en-US和不变文化一样4.4.4无效.在其他文化,像de-DE,,是小数分隔符和.是千位分隔符,所以4.4.4是444(与标准的,但可以接受的,成千上万的隔板插入,如4,4,4在en-US培养物中).
double.Parse("4.4.4", new CultureInfo("de-DE")) // 444
double.Parse("4.4.4", new CultureInfo("en-US")) // FormatException: Input string was not in a correct format.
double.Parse("4,4,4", new CultureInfo("en-US")) // 444
double.Parse("4,4,4", new CultureInfo("de-DE")) // FormatException: Input string was not in a correct format.
Run Code Online (Sandbox Code Playgroud)