【发布时间】:2015-11-09 06:44:20
【问题描述】:
您好,我需要根据文化信息转换一个十进制值。 对于 EG:
如果 en-US 文化,十进制值将类似于 21.56 并且在 tr-TR 是土耳其文化信息,这里的值与 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
那么使用文化信息将逗号十进制值转换为点十进制值的最佳方法是什么..?
【问题讨论】:
-
你不能,一般来说。 “21,123”可能表示“21,100,1023”,也可能表示“仅比 21 多一点”。这取决于文化。您需要了解文化才能理解价值。
-
@JonSkeet 所以它的赌注是输入一个字符串并用点替换逗号..?
-
我不知道您所说的“赌注”是什么意思 - 但我的意思是,除非您了解文化,否则您无法可靠地理解其价值。您绝对应该不只用点替换逗号,因为那样会改变意思。
-
对不起更好,不赌
-
好的,所以答案基本上是“不,不要那样做”。
标签: c# .net cultureinfo culture