# How to round a number in vb.net

Hi Experts,
I need to round numbers up and keep 4 decimal places. as I understand vb does not round up but down.for example the number 0.3456712 needs to be a double type:0.3457
how can I do that please??
###### Who is Participating?

Commented:
Hi Hagita,

All you need to do is use the Math.Round() method, it will round up or down depending on your number, you can also use its overload to specify how many places you want to round.

For example:

Math.Round(0.3456712 , 4) will return 0.3457

Math.Round(2.34 , 2) will return 2.30

Hope this helps.
0

Commented:
VB.Net does standard rounding.  If value is .5 or more, it rounds up, else it rounds down

Dim v As Double = 0.3456712
MsgBox(Math.Round(v, 4).ToString)

0

Commented:
Actually, it is more precise than that.  The standard method for rounding is that if it is >.5 is rounds up, if it is less than .5 it rounds down.  If it is exactly .5, it rounds either up or down, depending on the value of the previous digit - odd rounds up, even rounds down.

So 1.0055 rounded to 3 places is 1.006 and 1.0045 is 1.005
This is the standard way to even out rounding errors.
0

Commented:
Dim x = Math.Round(1234.545, 2, MidpointRounding.AwayFromZero) ' Result: 1234,55
Dim y = Math.Round(1234.545, 2, MidpointRounding.ToEven)              'Result:1234,54

Use AwayFromZero to minimize error.

Use ToEven where you are using money. Bank round.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.