c# - 使用区域性信息将逗号十进制值转换为点十进制值的最佳方法

标签 c# .net cultureinfo culture

您好,我需要根据区域性信息转换十进制值。 对于 EG:

If en-US culture the decimal value will be like 21.56 and in tr-TR which is turkey culture info , here the same value will be as 21,56

Si 我的要求是任何十进制值,但我需要默认输入 en-US。我需要用点分隔的十进制值,我不想要逗号的十进制值。

我尝试使用下面的代码进行转换

                CultureInfo userCulture = new CultureInfo("tr-TR");
                string fromVisioAPI = "35,2083";
                string display = double.Parse(fromDb, userCulture).ToString();

这里的输出是“35.2083”,这是我预期的,但这里是硬编码 tr-TR 值,我不知道有多少文化使用相同的逗号和点差。

This was a normal replacement and i need to be a proper culture conversion

那么使用区域性信息将逗号十进制值转换为点十进制值的最佳方法是什么......?

最佳答案

您需要知道要解析的数据的文化信息。如果它是静态的,您可以简单地对其进行硬编码或在 app.config 中对其进行配置。 否则,您可以使用 CultureInfo.CurrentCulture

要将值转换回字符串,您应该使用具有特定文化信息的 ToString 重载:

var visioApiCulture = 
    new CultureInfo(ConfigurationManager.AppSettings["VisioApiCulture"]);

var visioApiCulture = CultureInfo.CurrentCulture;

-

string fromVisioApi = "35,2083";

string display = double
    .Parse(fromVisioApi, visioApiCulture)
    .ToString(CultureInfo.InvariantCulture);

关于c# - 使用区域性信息将逗号十进制值转换为点十进制值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33603757/

相关文章:

c# - LINQ: "Types in Union or Concat are constructed incompatibly."

c# - 使用 jquery 调用 FormsAuthentication.SignOut() 方法

c# - 使用数据绑定(bind)访问 DataTemplate 中的 WPF 组件

c# - Silverlight 4 C# - 如何从列表框中获取 SelectedItem 的值?

c# - 将数字转换为特定于文化的

c# - 寻找新电子邮件的实时IMAP通知

c# - 如何编写 PostSharp Invoke 方面来简化跨线程控制更新

c# - 获取 XNA 支持的屏幕分辨率?

asp.net - 为特定客户创建自定义区域性和关联资源文件的推荐方法是什么?

c# - 如何更改字符串或 double 的文化信息