如何在Visual Basic中将字符串转换为整数?

70

如何将字符串转换为整数?这是我尝试过的代码:

Price = CInt(Int(txtPrice.Text))

我去掉了Int,但仍然收到异常。


你遇到了什么样的异常?如果你使用 VB.NET,你的代码会删除小数位。 - Sam Casil
我使用 CInt(),没有遇到任何问题。 - JFreeman
8个回答

121

使用

Convert.toInt32(txtPrice.Text)

这里假设使用VB.NET

根据变量名“txtPrice”,你需要的不是整数而是小数。所以应该使用以下代码:

Convert.toDecimal(txtPrice.Text)
如果是这种情况,请确保你分配的变量是 Decimal 而不是 Integer。

2
在VB.NET中,此代码将引发异常“输入字符串的格式不正确”。 - Sam Casil
我刚试了一下,但是没有成功。这次出现了格式错误。我还在继续尝试。我还有将近1个半小时的时间。 - swydell
1
Dim Price As Integer Dim result As Boolean = Int32.TryParse(txtPrice.Text, Price) - dan_l
2
我唯一能够通过这种方式获得格式错误的方法是实际上出现错误(输入字符/符号)。修复这个问题需要简单的输入验证,但这并没有被说明为要求。 - Chad Schouggins
2
这个解决方案对我来说会抛出一个错误,并且由于注册表键的问题,似乎不太适合生产环境。CInt(<string>) 的效果很好。 - msanford

27

你可以尝试一下:

Dim Price As Integer 
Int32.TryParse(txtPrice.Text, Price) 

3
我认为这真的是最好的答案。使用Int32或Decimal的TryParse()方法可以处理其他输入到文本框中的东西,比如货币符号和类似的内容。它也不会抛出异常,而只是返回一个布尔值来指示是否通过了解析。 - Seth Moore

13
您可以使用以下方法将字符串转换为整数:
  • 用 CInt(String) 转换为整数
  • 用 CDec(String) 转换为小数
如需详细信息,请参阅 Type Conversion Functions (Visual Basic)

5

请尝试以下VB.NET 2010代码:

  1. Integer.TryParse(txtPrice.Text, decPrice)
  2. decPrice = Convert.ToInt32(txtPrice.Text)

来自Mola Tshepo Kingsley (WWW.TUT.AC.ZA)


3

Convert.ToIntXX不喜欢传递带有小数的字符串。

为了安全起见,请使用

Convert.ToInt32(Convert.ToDecimal(txtPrice.Text))

2
你可以尝试这些方法:
Dim valueStr as String = "10"

Dim valueIntConverted as Integer = CInt(valueStr)

另一个例子:
Dim newValueConverted as Integer = Val("100")

1

使用Val(txtPrice.text)

我还将通过在价格文本框的键按下事件中插入一些验证代码,仅允许数字和点字符。


0
如果文本框中可能存在无效字符,它将抛出异常。 Val 命令提取数字并去除无效字符。它返回一个双精度浮点数。因此,您需要将 Val 的结果转换为所需的任何类型。
Price = Convert.toInt32(Val(txtPrice.Text))

这将在无效输入时返回0而不是抛出错误。如果不希望出现这种情况,您应该在转换之前检查输入是否有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接