【问题标题】:How does one convert a number string in US format to a number string in European format?如何将美国格式的数字字符串转换为欧洲格式的数字字符串?
【发布时间】:2016-03-13 19:52:34
【问题描述】:

我正在开发一个 WPF 应用程序,因此在 UI 上有一个组合框,允许用户从下拉列表中选择一种文化,然后根据用户选择的文化我想转换一个现有文化中的数字字符串到用户从组合框中选择的文化。例如 - 2,325,655.65(美国格式)与 2.325.655,65(欧洲格式)。

如何在 C# 中实现这一点?

这是我迄今为止尝试过的

using System;
using System.Globalization;

namespace Programs {
    public class ConvertCulture {
        public static void Main(string[] args) {
            Console.Write("Please enter a number : ");
            var number = Console.ReadLine();
            var doubleValue = double.Parse(number);
            var culture = CultureInfo.CreateSpecificCulture("es-ES");
            Console.WriteLine(doubleValue.ToString("N", culture));
            Console.ReadKey();
        }
    }
}

【问题讨论】:

  • 你如何填充这些字符串?
  • 它由应用程序动态填充,但工作流程已全部完成,我只需要进行转换,我尝试对其进行编码,但它没有按预期工作,除了以下文化 es- ES
  • 你能不能展示一下你到目前为止所做的尝试
  • 这里有一个可能的设计缺陷,即有多个“欧洲”格式,因此根据您的应用程序,您可能需要进一步的设置组合,例如对于英国,您将需要美国数字格式,但例如 dd/MM/yyyy 日期格式,以及很可能的公制测量单位。

标签: c# wpf globalization


【解决方案1】:

使用货币格式说明符 C。Here's msdn 文档。

例如:

double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3", CultureInfo.CreateSpecificCulture("da-DK")));

// The example displays the following output on a system whose
// current culture is English (United States):
//       $12,345.68
//       $12,345.679
//       kr 12.345,679

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 2016-04-02
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多