Solved

round number in vb.net

Posted on 2010-09-16
13
622 Views
Last Modified: 2012-05-10
How do we round number in vb.net? 12.65 is a string
12.65 to 13
0
Comment
Question by:VBdotnet2005
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 3
  • 2
  • +1
13 Comments
 

Accepted Solution

by:
ed_collen earned 125 total points
ID: 33697269
.NET will cast from string to decimal automatically in VB.

Dim Number As String = "12.65"
Dim DecimalNumber As Decimal = Number
Dim DecimalNumberRounded As Decimal = Math.Round(DecimalNumber,0,MidpointRounding.AwayFromZero)
0
 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33698303
You can also try this Function .Call it as RoundUpDownNumber(12.65)
Private Function RoundUpDownNumber(ByVal val As Decimal) As Decimal
        If val < Decimal.Zero Then
            Return CDec(Math.Ceiling(CDbl(val) - 0.5))
        Else
            Return CDec(Math.Floor(CDbl(val) + 0.5))
        End If

    End Function

Open in new window

0
 

Author Comment

by:VBdotnet2005
ID: 33698579
I hope you don't mind if I ask this too. What if a number like this. I would like to keep ','
12,456.26  round to 12,456
112,456.45 round to 112,456
6,456.98  round to 6,457
Thank you very much in advance
0
Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33698594
the function do that..but beacause it is a decimal you have to set the dec as 12456.26
0
 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33698597
otherwise if you already you have the "strings" you can do that:

Dim str As String = "12,456.26"
        MessageBox.Show(RoundUpToWholeNumber(Convert.ToDecimal(str.Replace(",", ""))))
0
 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33698606
Sorry Wrong Function


Dim str As String = "12,456.26"
        MessageBox.Show(RoundUpDownNumber(Convert.ToDecimal(str.Replace(",", ""))))
0
 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33698634
Note that also @ed_collen's solution is used several times..
take a look here http://msdn.microsoft.com/en-us/library/system.math.round.aspx
0
 
LVL 17

Expert Comment

by:Zhaolai
ID: 33701513
Just a modification of @ed_collen's code (the very first post):

        Dim Number As String = "12,312.65"
        Dim DecimalNumber As Decimal = Number
        Dim DecimalNumberRounded As String = Math.Round(DecimalNumber, 0, MidpointRounding.AwayFromZero).ToString("###,###,###")


0
 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33702810
Can i ask Why you are closing the question rather than accept a solution...there are three you may select.....
0
 
LVL 17

Expert Comment

by:Zhaolai
ID: 33703243
You are asking the moderator to reward the points and close the question for you.
Going forward, you can do it by yourself.
0
 
LVL 18

Expert Comment

by:John (Yiannis) Toutountzoglou
ID: 33703247
sorry i didn't check the close comment....very sorry....
0
 

Author Comment

by:VBdotnet2005
ID: 33709022
will accept instead of requesting close, my bad
0
 

Author Closing Comment

by:VBdotnet2005
ID: 33709056
thank you
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

710 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question