代码之家  ›  专栏  ›  技术社区  ›  MunkiPhD

.Net将数字从一个区域性转换为另一个区域性

  •  4
  • MunkiPhD  · 技术社区  · 16 年前

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

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

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

    3 回复  |  直到 10 年前
        1
  •  7
  •   Jon Skeet    16 年前

    这不会是一个转换的情况 进入 一串然后 返回 到正确的类型-完全相反。

    数字本身没有任何格式信息。浮点数是浮点数是浮点数。只有在解析或格式化时,区域性才会变得相关。

        2
  •  3
  •   dove    16 年前

    把它作为一个数字。更改线程的cultureInfo,它将相应地显示,而无需转换。

    例如。

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

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

    更新:Jon在评论中指出了一点,你会知道这是否适用于你的情况。

        3
  •  0
  •   Rockcoder    16 年前

    你可以用 NumberFormatInfo 让我们来上课。