4

在.Net(更具体地说是VB,但这并不重要)中,有没有办法严格通过该数字的类型将数字的格式从一种文化更改为另一种文化?

问题是这样的:在英语中,数字是 123.45。而在瑞典,这个数字是 123,45

有没有办法将 123,45 转换为 123.45 而不必将其转换为字符串(然后使用格式化方法),然后将其转换回正确的类型(单、双等)?

4

3 回答 3

7

这不会是转换字符串然后返回正确类型的情况 - 恰恰相反。

数字本身没有任何关于它的格式信息。浮子是浮子是浮子。只有当您解析或格式化时,文化才会变得相关。

如果您已经有了一个浮点值,那么只需根据阅读它的人的文化适当地格式化它。

于 2008-10-31T16:28:26.407 回答
3

将其保留为数字。更改线程的cultureInfo,它会相应显示,无需转换。

例如

Thread.CurrentThread.CurrentCulture = New CultureInfo("se-SE")
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture

切勿尝试将数字或日期专门格式化为字符串,否则您将走上地狱之路。

更新:乔恩在评论中指出要注意的一点,你会知道它是否适用于你的情况。

于 2008-10-31T16:28:15.987 回答
0

您可以使用NumberFormatInfo类来做到这一点。

于 2008-10-31T16:28:28.170 回答