VB.Net转换为特定的韩元´;我不能用逗号
我试图将一个字符串解析为十进制,但我一直得到一个formatExceptionVB.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
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到目前为止,我已经尝试了以下方法:
其他人有什么建议吗?在做了大量测试和尝试后,我找到了解决问题的方法 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,并使用该标签转换其小数点,可以实现此目的。我不知道为什么,但它解决了问题。。。