【问题标题】:How to convert string “2.000,65” into decimal 2,000.65 (en-Us) culture in c# [closed]如何在c#中将字符串“2.000,65”转换为十进制2,000.65(en-Us)文化[关闭]
【发布时间】: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

希望,现在可以清楚地理解问题了。

我尝试了各种选项,但无法实现。

你能帮帮我吗?

谢谢。

海林

【问题讨论】:

  • 显示您尝试过的内容。小数没有格式,它们的字符串表示有
  • 这是一个很容易理解的语言问题......!!!!

标签: c# globalization culture decimalformat invariantculture


【解决方案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"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2022-07-22
    相关资源
    最近更新 更多