C#:不转换数值如何将字符串截断至小数点后1-2位?
WPF ListView中CSV字段小数点快速截断方案
针对你在.Net6.0 WPF ListView中快速截断CSV字段小数点后内容的需求,这里提供纯字符串操作的一行代码解决方案,既避免数值转换的性能开销,又解决了字符不足导致的越界问题:
string TruncateDecimal(string input, int keepDecimals) => input.Contains('.') ? input.Substring(0, Math.Min(input.IndexOf('.') + keepDecimals + 1, input.Length)) : input;
使用说明:
- 保留1位小数时调用:
TruncateDecimal(items[x], 1),例如输入34.2返回34.2,输入34.2456返回34.2 - 保留2位小数时调用:
TruncateDecimal(items[x], 2),例如输入34.2返回34.2,输入34.2456返回34.24 - 无小数点的整数(如
34)会直接返回原字符串,不会触发异常
针对你需要处理的6个字段,只需对对应索引的items元素分别调用该方法即可,纯字符串操作的性能足以应对每秒数千条数据的处理场景。
内容的提问来源于stack exchange,提问作者zynovij
相关产品推荐
相关产品推荐

