如何在c#中将字符串“2.000,65”转换为十进制2,000.65(en-Us)文化[关闭]
Posted
技术标签:
【中文标题】如何在c#中将字符串“2.000,65”转换为十进制2,000.65(en-Us)文化[关闭]【英文标题】:How to convert string “2.000,65” into decimal 2,000.65 (en-Us) culture in c# [closed] 【发布时间】:2016-10-02 07:04:20 【问题描述】:我有德语(de-DE)文化格式的字符串值“2.000,65”。我想将此值转换为十进制,也想在 c# 中以英文(ed-US)格式转换,例如“2,000.65”。
总结:-
我有一个字符串值:“2.000,65”
现在想将此值转换为十进制 en-US(美国英语)格式:c# 中的 2,000.65
希望,现在可以清楚地理解问题了。
我尝试了各种选项,但无法实现。
你能帮帮我吗?
谢谢。
海林
【问题讨论】:
显示您尝试过的内容。小数没有格式,它们的字符串表示有 这是一个很容易理解的语言问题......!!!! 【参考方案1】:decimal money = decimal.Parse("2.000,65", new CultureInfo("de-DE"));
string result = money.ToString("N2", new CultureInfo("en-US"));
如果您想显示美元符号,您可以使用"C"
而不是"N2"
。
【讨论】:
嗨,蒂姆,它看起来不错,但是从 de-DE 转换后,小数点后的值不会以英语(en-US)文化出现。所以这里以 ed-US 格式显示 2,000 而不是 2,000.65。怎么做才能得到十进制值? 什么是“ed-US”?你试过我的代码吗?它按预期工作。 抱歉,不是 ed-US,它是 en-US。而且我已经尝试了您的代码,它可以正常工作,但是小数点后的值没有出现。所以在我的例子中,它显示的值是 2000.00 而不是 2,000.65。 @Herin:我还是不明白。我的代码按预期工作,值为"2.000,65"
,结果为"2,000.65"
。那么你使用什么代码或者你在哪里输出值?也许这只是一个显示问题。【参考方案2】:
string stringValue = "2.000,65";
var decimalValue = decimal.Parse(stringValue, new CultureInfo("de-DE"));
var decimnalUsValue = decimalValue.ToString("N2", new CultureInfo("en-US"));
【讨论】:
以上是关于如何在c#中将字符串“2.000,65”转换为十进制2,000.65(en-Us)文化[关闭]的主要内容,如果未能解决你的问题,请参考以下文章