相关疑难解决方法(0)

将货币字符串转换为小数?

目的

排序string是显示这样的货币数据$1,995.94数值在一组数据.

我目前正在使用下面的代码示例将string值转换为decimal我可以正确排序.

if (sortBy == "checkAmount")
{
    StringBuilder sb = new StringBuilder();
    foreach (var c in Convert.ToString(p.GetType().GetProperty(sortBy).GetValue(p, null)))
    {
        if (!char.IsDigit(c) && c != '.') { continue; }
        sb.Append(c);
    }
    return Convert.ToDecimal(sb.ToString());
}
else
{
    return p.GetType().GetProperty(sortBy).GetValue(p, null);
}
Run Code Online (Sandbox Code Playgroud)

问题

有什么更好的方法呢?它有效,而且很酷,但它不是很优雅.

最终解决方案

Servy提供的答案按预期工作,我使用了一段时间的实现,但是我和一位同事找到了更好的方法,所以我在这里记录它.顺便说一句,我最终最终使用了这个解决方案.

decimal.Parse(input, NumberStyles.AllowCurrencySymbol | NumberStyles.Number);
Run Code Online (Sandbox Code Playgroud)

.net c# type-conversion

47
推荐指数
4
解决办法
4万
查看次数

标签 统计

.net ×1

c# ×1

type-conversion ×1