在vb.net中将字符串转换为double

时间:2012-06-21 07:19:27

标签: vb.net datatable

数据表包含名为Fld_primary的列。此列包含的值如0.00它是mysql table中的double数据类型。我希望将该数据表值存储在double变量中。当我转换为double数据类型时总是会出错。

my code
------- 
Dim ds5 As dataset1.DTSUMDataTable = TA5.GetData(users)

Dim dttot As Double
dttot = CType(ds5("fld_primary").ToString, Double)

错误

 Conversion from string "fld_primary" to type 'Integer' is not valid.

6 个答案:

答案 0 :(得分:3)

使用最近的屏幕上限编辑@ 3:01 AM。

有时候我发现自己会根据人们的答案第二次猜测某些代码,但我继续花时间检查他们所使用的代码是否有效: enter image description here

正如您所看到的那样,代码是不行的,所以我使用了您在底部看到的正确代码来引用列。

但是,如果您希望获得单个单元格,请使用下面使用foreach循环的代码块(其余部分是我的基本设置,以向您展示它是如何工作的):

enter image description here

“Y”将等于数据表单元格的值,您可以使用Double.Parse()方法转换它:

Dim y = Double.Parse(zDataRow("cat").ToString())

要小心,如果你有多行,你会注意到y的值会随着它遍历所有行而改变。

答案 1 :(得分:3)

您可以使用Convert类转换它。

Dim dttot As Double = Convert.ToDouble(ds5("fld_primary"))

答案 2 :(得分:1)

您的错误实际上是:ds5需要一个整数作为参数,因此使用ds5("fld_primary")在您的代码中无效。也许你可以尝试ds5(0)("fld_primary")

修复后,使用

dttot = Double.Parse(whatever_string_you_should_put_here)

如果您无法确保字符串必须是有效double,请使用Double.TryParse

答案 3 :(得分:1)

你最好使用'Double.TryParse'转换方式,因为它可以更好地处理任何错误,如果成功或不成功则简单地返回一个布尔值,使用'parse'将抛出一个不在任何地方的优雅。

Dim dub as Double = 0
Double.TryParse("Your String Here", dub)

答案 4 :(得分:0)

尝试使用Double.TryParse(text,value)

答案 5 :(得分:0)

尝试使用此:

  For a=0 to yourgridview.rows.count-1
Yourgridview.rows(a).cells(targetcolumnnumber).value=cdbl(Yourgridview.rows(a).cells(targetcolumnnumber).value)
Next