提取小数点分隔符

Fra*_*ias 0 c# string decimal internationalization

我在C#中导入csv文件,有时使用'.',有时使用','作为小数分隔符.

是否有一种确定小数点分隔符的最佳方法,而不是从最后一个字符到第一个字符的计数?

提前致谢.

富兰克林Albricias.

Jef*_*nal 6

如果您事先知道正确的文化(例如,因为您知道创建该文件的用户),您可以尝试使用适当的CultureInfo或解析提供的值NumberFormatInfo:

Decimal value = Decimal.Parse(input, new CultureInfo("es-ES"));
Run Code Online (Sandbox Code Playgroud)

但是如果事先不知道类型,则必须通过检查字符来手动检查它,直到找到分隔符.(甚至那种方法也假设你保证总是有一个小数分隔符,这样one写的1.0不是1.)

您不能一个接一个地尝试每种预期的格式,因为您可能会得到误报.

10,000意味着有效但两种格式不同的东西.