我有 - $ 2.00作为字符串。我试图通过删除 - 和$ using substring将其更改为十进制。但我做错了。有人能帮我吗?
感谢。
答案 0 :(得分:6)
string m = "-$2.00";
decimal d = Math.Abs(Decimal.Parse(m, NumberStyles.Currency));
答案 1 :(得分:5)
Substring将返回一个新字符串。我怀疑你的问题可能是试图改变字符串,这不起作用。
你可以这样做:
string result = original.Substring(2);
decimal value = decimal.Parse(result);
根据输入字符串的生成方式,您可能希望使用decimal.TryParse
或其他一些具有更好错误处理的例程。
答案 2 :(得分:3)
别。
相反,你应该让.Net为你做肮脏的工作:
Decimal value = Decimal.Parse("-$2.00", NumberStyles.Currency);
如果出于某种原因,您不想要负数,请致电Math.Abs
。
答案 3 :(得分:2)
所有字符串操作都返回一个新字符串,因为string是不可变的
答案 4 :(得分:1)
如果可以避免,我不会使用子字符串。做一些像这样的事情要简单得多:
string result = original.Replace("$", "").Replace("-", "");