如何在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)文化[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在c#中将十进制值转换为两个精度[重复]

如何在 C# 中将数据从字符串转换为长整数

在 C# 中将十进制数转换为双精度数会产生差异

如何在 Python 中将十六进制转换为十进制? [复制]

在 C# 中将 char 转换为 int

如何在 C++ 中将字符的十进制代码转换为 Unicode 字符串?