We help IT Professionals succeed at work.

Round question

EYoung
EYoung asked
on
Medium Priority
532 Views
Last Modified: 2010-05-01
In vb6 I am having a Rounding problem.

Round(1.5,0) = 2            Makes sense
Round(11.5,0) = 12        Makes sense
Round(112.5,0) = 112    Does not make sense.  Why not 113?

I have defined my memory varialbles as Double, but the rounding as shown above is not working correctly.

Thanks
Comment
Watch Question

Commented:
That is normal rounding behaviour. 1.49 will round down, 1.5 up

Commented:
sorry ... to continue ....
on my machine same behaviour
 12
 2
 112

maybe it is a precision problem?

Commented:
found a page
 
http://www.raritanval.edu/departments/cis/full-time/Schwarz/vb6/lesson7.htm

that says that VB6 rounds odd numbers up and even numbers down at .5

Commented:
Round() rounds to the nearest even number. It's normal behavior and is called "Banker's rounding"/"Gaussian rounding" aside from "Standard rounding".

Commented:
cfry001 has not read the question!!

Eyoung, check this website, in it is explained by microsoft

http://support.microsoft.com/default.aspx?scid=kb;EN-US;196652

Private Sub Command1_Click()
Dim MyNumber As Double
Dim Tmp As Double
MyNumber = Text1.Text
If Not InStr(1, MyNumber, ".") Then MyNumber = MyNumber + ".1"
If Mid(MyNumber, 1, InStr(1, MyNumber, ".") - 1) Mod 2 = 0 Then
If Mid(MyNumber, InStr(1, MyNumber, ".") + 1) <> 5 Then
MyNumber = MyNumber + 0.1
End If
End If
MsgBox Round(MyNumber, 0)
End Sub

that will fix the problem, if u don't mind a little code
Top Expert 2004
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Author

Commented:
Thanks to everyone.  cfry001 - you were right.  VB6 does have an error that was not present in vb5.  Also, MS is not consistent among its apps in how it calcs rounding.  I read that same url.

Shauli - you provided the answer that was the most helpful, thanks.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.