0

私は大きな問題を抱えています。このコードを使用して数値を通貨に変換しました。

Dim reg = New Regex("\d+")
Dim str As String = dZ.Rows(y).Item(14).ToString().Replace(",", ""). _
                               Replace(".00", "").Replace("$", "").Trim
Dim match = reg.Match(str)
If match.Success Then
    str = reg.Replace(str, Decimal.Parse(match.Value).ToString("C"))
End If

はい、機能しますが、私の金額が次の場合はどうなりますか:

1,900.50 POC
4

1 に答える 1

1

あなたのソリューションはあまり柔軟ではありません。私の解決策を提案します:

string cellValue = dZ.Rows[y][14];
string cleanedCellValue = Regex.Replace(s, @"\s[^\d.,]+", ""); 
//this will replace everything after the last digit

string decimalValue = Convert.ToDecimal(cleanedCellValue, CultureInfo.InvariantCulture);
string str = decimalValue.ToString("C");

このソリューションは、各セルがカンマを千の区切り記号として、ドットを小数点記号として、任意の記号を通貨記号として使用する場合に機能します。

それ以外の場合は、もっと例を教えてください

于 2012-12-28T11:48:49.583 に答える