多文化编程的一个有趣的部分是数字格式。
我的第一个方法是获取字符串,向后解析它,直到遇到一个分隔符,然后使用它作为我的小数点。这里有一个明显的缺陷: 10.000将被解读为10。
另一种方法是: 如果字符串包含2个不同的非数字字符,使用最后一个作为小数点,并丢弃其他字符。如果我只有一个,检查它是否发生了不止一次,如果发生了就丢弃它。如果它只出现一次,检查它后面是否有3个数字。如果是,丢弃它,否则,把它当作小数点。
显而易见的“最佳解决方案”是检测用户的文化或浏览器,但是如果你有一个法国人使用一个 en-US Windows/Browser,这是行不通的。
是不是。Net 框架包含一些神秘的黑魔法浮点解析器,这是比 Double.(Try)Parse()
更好的尝试自动检测的数字格式?