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

kelvzy 您的解决方案不是很灵活。我会建议我的解决方案:

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 回答