2

我正在尝试将字符串解析为小数,但我不断收到 formatException

Dim row as GridViewRow
    for each row in grdActieRittenActiefAlt.rows
        Dim rbl as RadioButtonList = row.FindControl("tblAddAct")
        'toevoegen = true
        if rbl.SelectedItem.Value = true then
            Dim opgaveIdent as Integer = Convert.ToInt32(grdActieRittenActiefAlt.DataKeys(row.RowIndex).Value.ToString())

            Dim curOldTarief as Decimal = Convert.ToDecimal(lblCuratiefTarief.Text)
            Dim curOldKorting as Decimal = Convert.ToDecimal(lblCuratiefKorting.Text)

            Dim curTariefString as String = row.Cells(4).Text
            Dim curKortingString as String = row.Cells(6).Text

            Dim curTarief as Decimal = Convert.ToDecimal(curTariefString)
            Dim curKorting as Decimal = Convert.ToDecimal(curKortingString)

            lblCuratiefTarief.Text = (curOldTarief + curTarief).ToString()
            lblCuratiefKorting.Text = (curOldKorting + curKorting).ToString()


        end if
    next row

输入是 431,25。

到目前为止,我已经尝试了以下方法:

  • 使用 .Replace(",",".") => 将逗号更改为冒号 => 无效
  • 使用强制 CultureInfo => 无效
  • 直接使用 row.Cells(4).Text => 没用
  • 使用子字符串查询仅获取整数 (431) => 有效但没有解决方案
  • 还有其他人有什么建议吗?

    4

    2 回答 2

    2

    在做了更多的测试和尝试之后,我找到了解决问题的方法/解决方案。

    row.Cells(4).Text 是一个边界域。我已将其更改为带有标签的 TemplateField。通过制作一个局部变量(标签)并使用它来转换它的小数。我不知道为什么,但对我来说这是一个解决方案。

    于 2012-11-29T11:16:09.047 回答
    0

    您是否尝试过 FormatNumber 函数?

    FormatNumber(number, 2)
    

    2 是小数位数。

    于 2012-11-29T17:35:58.663 回答