VB.Net转换为特定的韩元´;我不能用逗号

VB.Net转换为特定的韩元´;我不能用逗号,vb.net,decimal,comma,formatexception,Vb.net,Decimal,Comma,Formatexception,我试图将一个字符串解析为十进制,但我一直得到一个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

我试图将一个字符串解析为十进制,但我一直得到一个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)=>有效,但不是解决方案

  • 其他人有什么建议吗?

    在做了大量测试和尝试后,我找到了解决问题的方法

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

    您尝试过FormatNumber函数吗

    FormatNumber(number, 2)
    

    2是小数位数。

    程序运行时使用的文化特性是什么?您是否尝试过
    Decimal.Parse
    ?我无法使用替换来重现您的结果-
    Convert.ToDecimal(“431,25”。替换(“,”,“))
    生成
    431.25
    。使用
    Decimal.Parse
    和区域性
    fr
    也能像预期的那样工作。Decimal.Pase给出了相同的结果。区域性为nl-nl。请检查输入字符串。确保周围没有奇怪的字符。如果您是从Excel/HTML导入(根据
    row.Cells(4.Text
    ),您可能会获得额外字符。我找到了解决方案,但并不是退出最佳解决方案。。数据来自数据网格。通过将网格中的boundfield更改为带有标签的templatefield,并使用该标签转换其小数点,可以实现此目的。我不知道为什么,但它解决了问题。。。