.Net将数字从一种文化转换为另一种文化

时间:2008-10-31 16:24:21

标签: .net localization internationalization

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

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

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

3 个答案:

答案 0 :(得分:6)

转换为字符串,然后将返回转换为正确的类型 - 恰恰相反。

该号码本身没有任何格式化信息。浮子是浮子是浮子。只有在您解析或格式化文化才变得相关时才会这样做。

如果你已经有浮动值,那么只需根据阅读它的人的文化来适当地格式化它。

答案 1 :(得分:3)

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

E.g。

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

永远不要尝试将数字或日期格式化为字符串,否则你将会走向地狱。

更新:Jon在评论中注意到,你知道它是否适用于你的情况。

答案 2 :(得分:0)

您可以使用NumberFormatInfo类来执行此操作。