我正在尝试将一种货币转换为另一种货币
例如
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"
答案 0 :(得分: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
答案 1 :(得分: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);