Substring在末尾留下一个大括号,没有转义大括号

本文关键字:转义 下一个 Substring | 更新日期: 2023-09-27 18:06:18

我在c#中使用String.Format()decimal值转换为string,并将数字四舍五入到小数点后2位:

string result = "some stuff $" + String.Format("{0:0.00}", decValue);

那么,result变量看起来就像:some stuff $4.99

result变量实际上是一个更大的string, decimal值附加在它的末尾。因此,当我从字符串中得到实际的decimal值时,我将这样做:

string str = result;
str = str.Substring(str.LastIndexOf("$")+1);
decimal dec = decimal.Parse(str);

问题是,Substring()方法在返回的子字符串的末尾留下一个字面花括号},所以我实际上不能将其解析为小数:

4.99}

我可以手动摆脱大括号,但我不明白为什么我应该这样做,因为为什么Substring()实际上离开大括号挂在那里是没有意义的。

Substring在末尾留下一个大括号,没有转义大括号

感谢大家的评论。我发现了问题所在,结果完全不同了。我正在使用ListView,我正在获得list.SelectedItems[0].ToString()值。这个值本身返回类似于:ListViewItem: {Item Here}的东西,它解释了花括号。不过我还是按照Chris的建议用ToString("0.00")更改了格式