您好,我需要根据区域性信息转换十进制值。 对于 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/