0

たとえば、ユーザーが価格を入力できるフォームがあります10.00

ただし、フォームはパーリー テキストであるため、ユーザーは$10.00またはを入力できます10.00 for book。UI を変更することはできません。これは内部で行う必要があります。したがって、基本的に使用タイプが何であれ、10 進数の結果が必要です。

私はこれをやり始めました

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 に答える