1

我正在尝试将一种货币转换为另一种货币

例如。

  decimal value= 0;
  var text = "£135";
  decimal.TryParse(text, NumberStyles.Any, new CultureInfo("fa-IR"), out value);

此结果值为“0”。我在这里做错什么了吗?

或者有没有其他方法可以做到这一点?

任何帮助表示赞赏!

更新

我累了

var value= string.Format(new CultureInfo("en-US"), "{0:c}", text);
then value = "£135"

var value = string.Format(new CultureInfo("en-US", false), "{0:c}", text);
then value = "£135" 

var value = string.Format(new CultureInfo("en-US", false), "{0:c}", "135");
then value = "135"
4

2 回答 2

3

如果你想要货币符号,你可能应该做更多这样的事情

var s = 135.ToString("C", new CultureInfo("en-US"));

这将为您提供 135.00 美元

不过,您只能使用非字符串值。所以,如果你想来回转换它们,那么你需要先从字符串转回小数

  var s = 135.ToString("C", new CultureInfo("en-US"));
  //$135.00
  decimal x;
  var tryParse = decimal.TryParse(s, NumberStyles.Currency, new CultureInfo("en-US"), out x);
  var s1 = x.ToString("C", new CultureInfo("fa-IR"));
  //ريال 135/00
于 2013-02-21T17:47:45.430 回答
1

"£135"Contains Currency Symbol并且decimal.TryParse无法获得符号..所以只有它返回"0"...

尝试在没有符号的情况下传递值然后它可以工作......string.Format在代码中其他明智的使用......

decimal value= 0;
var text = "135";
decimal.TryParse(text, NumberStyles.Any, new CultureInfo("fa-IR"), out value);
于 2013-02-21T17:36:39.023 回答