7
要解析表示与逗号从其它部分分开千位的数字的字符串,我想为什么NumberStyles.AllowThousands适用于int.Parse,但在本例中不适用于double.Parse?
int tmp1 = int.Parse("1,234", NumberStyles.AllowThousands);
double tmp2 = double.Parse("1,000.01", NumberStyles.AllowThousands);
第一条语句可以运行,而第二个失败,并通知
类型的未处理的异常'System.FormatException'发生在 mscorlib.dll
附加信息:输入字符串格式不正确。
为什么两个都不成功?谢谢。
感谢。你能解释为什么我必须通过另一面旗帜吗? – Tim
更好的是,添加到默认值。对于'int',就是'NumberStyles.Integer',所以'int.Parse(“ - 1,234”,NumberStyles.Integer | NumberStyles.AllowThousands)'应该可以工作。 – hvd
@Tim,在这里从臀部射击,但这是因为不同的文化使用','和'.'与你正在使用的相反。在美国,“千分之一”表示为“1,000.1”,在某些文化中,它表示为“1.000,1”。指定这些附加标志可帮助解析器确定如何解析该值。 – Cameron