jas backer
jas backer

Reputation: 199

converting integer to decimal values while adding both

I am working on a vb.net application.

My code is the following:

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

my values are:

txtTotalPrevious.Text=187.0000
txtoldtotal=3

I get the result

result =190

but my expected result is:

result=190.0000

What is the issue in my logic?

Upvotes: 1

Views: 1523

Answers (1)

Reza Aghaei
Reza Aghaei

Reputation: 125197

You can use String.Format if you want to output string be like you want:

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

And if you want the double result:

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

EDIT


Based on varocarbas comments you should consider some notes:

Avoid using Val method

The Val function stops reading the string at the first character it cannot recognize as part of a number. Symbols and characters that are often considered parts of numeric values, such as dollar signs and commas, are not recognized. However, the function recognizes the radix prefixes &O (for octal) and &H (for hexadecimal). Blanks, tabs, and linefeed characters are stripped from the argument.
The following call returns the value 1615198.
Val(" 1615 198th Street N.E.")

The Val function recognizes only the period (.) as a valid decimal separator. When different decimal separators are used, as in international applications, use CDbl or CInt instead to convert a string to a number. To convert the string representation of a number in a particular culture to a numeric value, use the numeric type's Parse(String, IFormatProvider) method. For example, use Double.Parse when converting a string to a Double.

As a VB.Net Programmer use & instead of + for string concatenation

When you use the + operator, you might not be able to determine whether addition or string concatenation will occur. Use the & operator for concatenation to eliminate ambiguity and to provide self-documenting code.

Upvotes: 2

Related Questions