昨天我看了如何设置存储在外部txt文件中的数字的变量值
然后需要将变量加起来,所以我首先使用了反复试验
((XVAL)+(NEWVAL))
假设XVAL设置为10且NEWVAL设置为20,我预计得到30的答案但是waqs的新值为10 20
VB.net pysicaly将这两个值加在一起,但我想要两者的数学乘积是((10)+(20))= 30
是的,这是一个新问题,任何人都可以解释如何实现真正的目标
答案 0 :(得分:4)
XVAL
和NEWVAL
是字符串,所以它们只是简单地连接在一起。您需要将它们转换为整数,以便VB.NET将它们视为整数。为此,请使用Int32.Parse()
方法。
Dim intXVAL As Integer = Int32.Parse(XVAL)
Dim intNEWVAL as Integer = Int32.Parse(NEWVAL)
Dim result = intXVAL + intNEWVAL
答案 1 :(得分:1)
您想先将它们转换为数字。 尝试 CDbl 。 有关详情,请参阅http://msdn.microsoft.com/en-us/library/Aa263426。
编辑:哎呀,以为你在谈论VBA。 如果您正在谈论VB.NET,请尝试使用Double.Parse(YOURVALUE)。
答案 2 :(得分:0)
您是否尝试过Val()函数?
Val(XVAL) + Val(NEWVAL)
答案 3 :(得分:0)
当您从文本文件中读取时,我假设您正在以字符串形式读取您的值,因此当您执行此操作时:
((XVAL) + (NEWVAL))
它有效地将两个字符串连接在一起。为了获得这两个值的数学乘积,这些值必须是int / integers,这是数字类型。
您可以通过多种方式执行此操作,但实质上您必须将字符串“强制转换”为整数然后进行计算。
所以在vb.net中它会是这样的(伪代码):
Dim xval As String = "10"
Dim newval As String = "20"
Dim x As Integer = Int32.Parse(xval)
Dim n As Integer = Int32.Parse(newval)
Dim prod As Integer = x + n
Console.WriteLine(prod)
还有许多其他方法可以做到这一点,例如使用:
int.Parse(...)
或
Integer.TryParse(...)
有关这些类型转换的更多信息,请访问:
http://dotnetperls.com/integer-parse-vbnet
要记住这些转换,有一点需要确保您的输入数据是可转换的。否则您的代码将抛出异常。这是TryParse非常有用的地方,因为您可以使用它来检查输入并处理无效输入,而无需例外。
答案 4 :(得分:0)
VB.NET中的 +
运算符(出于向后兼容性原因)意味着都添加和连接,具体取决于它所变量的类型用于。使用两种数字类型(Integer
,Single
,Double
等),它会像您期望的那样将值相加。但是,对于String
类型,它会连接两个字符串。
据推测,您的XVAL
和NEWVAL
变量是String
类型,因为它们是从文本文件中读取的,这导致VB.NET将它们连接成一个新字符串而不是将它们一起添加。要获得您期望的行为,您需要将它们转换为数字类型。
其他一些答案建议只需将字符串值转换为数字类型(CInt
,CSng
,CDbl
等),但如果这样做可能无法正常工作您的字符串包含的值无法转换为数字。如果字符串保存的值不能表示为数字,Int32.Parse
方法将抛出异常。如果您正在从文本文件中读取不保证遵守任何特定约束的值,请务必记住这一点。
相反,您可能希望使用类似 Int32.TryParse
的内容,它返回一个Boolean
值,指示转换是否成功并且不会引发异常。