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()
实际上离开大括号挂在那里是没有意义的。
感谢大家的评论。我发现了问题所在,结果完全不同了。我正在使用ListView,我正在获得list.SelectedItems[0].ToString()
值。这个值本身返回类似于:ListViewItem: {Item Here}
的东西,它解释了花括号。不过我还是按照Chris的建议用ToString("0.00")
更改了格式