0

我有一个允许用户输入价格的表单,例如,10.00.

但是,由于表单是purley 文本,用户可以输入$10.0010.00 for book. 我无法更改 UI,这必须在后台完成。所以基本上我只想要一个十进制结果。

我开始这样做

public decimal FilterPrice(dynamic price) {
    string convertPrice=price.ToString();

    var filterNumber=
        from letter in convertPrice
        where char.IsDigit(letter)
        select letter;

    return something;
}

但是,这将剥离.。任何想法如何做到这一点?

4

1 回答 1

5

你可以用一个简单的正则表达式来解决它。

    public bool TryGetPreisAsDecimal(string price, out decimal convertedPrice)
    { 
        Match match = Regex.Match(price,@"\d+(\.\d{1,2})?");

        if (match != null)
        {
            convertedPrice = decimal.Parse(match.Value);
            return true;
        }
        else
        {
            convertedPrice = 0.0m;
            return false;
        }
    }
于 2013-02-21T18:57:32.363 回答