在添加两者时将整数转换为十进制值

时间:2015-09-06 09:59:37

标签: vb.net

我正在开发一个vb.net应用程序。

我的代码如下:

txtTotalPrevious.Text = Val(txtTotalPrevious.Text) + Val(txtoldtotal.text)

我的价值观是:

txtTotalPrevious.Text=187.0000
txtoldtotal=3

我得到了结果

result =190

但我的预期结果是:

result=190.0000

我的逻辑中有什么问题?

1 个答案:

答案 0 :(得分:2)

如果您想按照自己的意愿输出字符串,可以使用String.Format

Dim str1 As String = "187.0000"
Dim str2 As String = "3"
Dim resultString As String = String.Format("{0:0.0000}", Val(str1) + Val(str2))
' And the result will be 190.0000

如果你想要双重结果:

Dim resultDouble as Double= Val(str1) + Val(str2)
' And the result will be Double 190

修改

基于varocarbas评论,您应该考虑一些注意事项:

避免使用Val方法

  

Val函数停止在第一个字符处读取字符串   无法识别为数字的一部分。符号和字符   通常被认为是数值的一部分,如美元符号和   逗号,不承认。但是,该功能可识别基数   前缀& O(对于八进制)和& H(对于十六进制)。空白,标签和   从参数中删除换行字符   以下电话   返回值1615198   Val(" 1615 198th Street N.E.")

     

Val函数仅将句点(。)识别为有效小数   分隔器。使用不同的小数分隔符时,如   国际申请,使用CDbl或CInt代替转换   字符串到一个数字。转换数字的字符串表示形式   在特定文化中使用数字类型,使用数字类型   Parse(String,IFormatProvider)方法。例如,使用Double.Parse   将字符串转换为Double时。

作为VB.Net程序员使用&而不是+用于字符串连接

  

使用+运算符时,您可能无法确定   是否会发生添加或字符串连接。使用&   用于连接的运算符以消除歧义并提供   自我记录的代码。