【发布时间】:2014-07-26 15:06:57
【问题描述】:
我需要回答几个问题,以帮助调试我遇到的全球化/本地化问题,这让我很困惑。
1) 在全球化/本地化方面,如果我将字符串转换为双精度字符串,CType 究竟如何工作?
根据我的研究并询问办公室中的其他开发人员,我认为 CType 应该使用您计算机上的任何文化设置。因此,例如CType("1.23", Double) 可以很好地用于美国文化计算机。但是如果在荷兰的文化计算机上将其转换为123 会搞砸,其中, 被识别为小数点,. 被识别为千位分隔符。但是如果字符串是1,23,那么它在荷兰计算机上可以正常工作,在美国计算机上变成123。
2)如果我抓取一个数字并说doubleNumber.ToString 将其转换为字符串,.ToString 是如何工作的?
根据我在这里的经验,我 99.9% 确信不应该包含千位分隔符,所以像 1,234.56 这样的数字在美国计算机上会变成 1234.56,对吗?在荷兰文化计算机上,该数字将变为1234,56,因为, 是小数位,对吧?
3) 在荷兰文化计算机上,有没有办法让双精度上的 CType(#, Double) 或 .ToString 搞砸并开始将 . 识别为小数分隔符而不是 @ 987654337@像荷兰文化应该承认吗?
底线:第 3 项是我遇到问题的地方。我的 99.9% 的美国和外国用户都可以正常运行我的软件,而不会出现任何本地化问题。但是荷兰的一位用户报告了一个错误,即从txt 文件中导入一个数字会以某种方式将1,23 转换为123。当我们的一位客户支持人员告诉他们将小数点更改为. 时,它工作正常。由于某种原因,缺少该荷兰用户使用美国文化计算机(他们坚称自己不是),我无法弄清楚这个问题是如何发生的。
【问题讨论】:
标签: .net vb.net localization globalization aspose