?
Solved

How do I round numbers in C# in a text box?

Posted on 2004-10-18
13
Medium Priority
?
2,375 Views
Last Modified: 2008-01-09
I am currently building a Web Page in Visual Studio.NET.... (C#).  I am trying to figure out how to 'round numbers" that I am pulling into text boxes in my Web Form from a DB.  Currently, When I view the page the numbers are coming up as "0.96544456754363."  I want to round them to  "0.97". How would I do this in C#?
Thanks
PLEASE HELP... I know there is probably an easy way to do this,....
0
Comment
Question by:bripena
[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
  • 4
  • 4
  • 2
  • +3
13 Comments
 
LVL 9

Accepted Solution

by:
msdixon earned 500 total points
ID: 12340317
assuming it's a decimal object...


decimal val = 0.96544456754363;

val.ToString("n2"); // this tells it to display a number with two trailing decimal points. i.e. 28.1038 will display as 28.10
0
 

Author Comment

by:bripena
ID: 12340358
now- being I am pulling from a DB and these numbers are displayed in text boxes- can I use the decimal val to account for any value that would appear there- in other words- I don't want to key in every value- so what can I use to account for all vlaues that would be pulled into that text box???
0
 
LVL 3

Expert Comment

by:aacool
ID: 12340515
You would need to check the text and validate whether it is a number(float) or whether it is text. IF you got text from the db, perhaps you could put NaN (Not a number) as text.

So you could validate the text using a parser to check for only numbers(float) and then round those off to 2 digits as shown.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:bripena
ID: 12341231
the number os a float.....
0
 

Author Comment

by:bripena
ID: 12341247
if I integrate the following....
                   double x;

                  x = textBoxValue;

                  double roundX = System.Math.Round(x,2);

The problem is - it is not recognizing 'textboxvalue' and I have multiple text boxes in which this needs to apply to.....
any thoughts???
0
 
LVL 9

Expert Comment

by:s_sansanwal
ID: 12343107
what is textBoxValue?

Have you declared it anywhere?

Cheers,
S Sansanwal
www.sansanwal.com
0
 
LVL 3

Expert Comment

by:aacool
ID: 12343720
this is cryptic code.

Taking a shot,

assume
string textboxvalue = Textbox1.Text

if(isString(textboxvalue)==false) // check if string
{
     double x = double.Parse(textboxvalue);
    double roundX = System.Math.Round(x,2);
    // do something
}

What exactly is the code and what is the error?
0
 
LVL 18

Expert Comment

by:armoghan
ID: 12344554
Make a custom textbox component by extending from textbox named numerictextbox and override the Text property. use the above methods to set and get as rounded number
0
 
LVL 3

Expert Comment

by:Realmrat
ID: 12345126
String.Format("{0:F2}", 0.96544456754363);          =  .97

double varName = 0.96544456754363D;

String.Format("{0:F2}", varName);                         =  .97

This will round to the nearest fixed(F) decimal point (2).


String.Format("{0:c}", varName);                           =  $0.97

Displays the number in currency.


Check out this link for a list of all the formating options.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconstandardnumericformatstrings.asp


 - Joe
0
 
LVL 3

Expert Comment

by:Realmrat
ID: 12345148
Here's an ASP.NET Implimentaion that I've used:

                                                                 Page.aspx
--------------------------------------------------------------------------------------------------------------------------------------

<asp:DataList id="DataList1" runat="server" Width="100%">
<ItemTemplate>
     <asp:Label id=ItemPriceDataListLabel Text="<%# DataItemPrice(Container.DataItem) %>" Runat="server">
     </asp:Label>
</ItemTemplate>
</asp:DataList>


                                                                Code Behind
--------------------------------------------------------------------------------------------------------------------------------------

        protected string DataItemPrice(object DataItem)
        {
            DataRowView row = (DataRowView) DataItem;
            return String.Format( "{0:c}", row["UnitCost"]);
        }


This is using Databinding on the DataList.

 - Joe
0
 

Author Comment

by:bripena
ID: 12347169
I tried aacool's method but received the below error- any one know what is wrong????

string textboxvalue=txtclinicaltotal.Text;
                  if(IsString(textboxvalue)==false)
                  {
                        double x = double.Parse(textboxvalue);
                        double roundX = System.Math.Round(x,2);
                        // do something
                  }

c:\inetpub\wwwroot\CREAMPROFILE1\CREAMFORM.aspx.cs(108): The name 'IsString' does not exist in the class or namespace 'CREAM1.WebForm1'
0
 
LVL 3

Expert Comment

by:aacool
ID: 12352188
isString is a helper function - you need to implement it to check whether the value is a string. One impl is:

            public static bool isString(string txt)
            {
                  bool isStr = false;
                  char[] chr = txt.ToCharArray();
                  foreach(char ch in chr)
                  {
                        if(Char.IsLetter(ch)==true)
                              isStr = true;
                  }
                  return isStr;
            }
0
 
LVL 3

Expert Comment

by:aacool
ID: 12377107
Did you get what you wanted working?
0

Featured Post

What’s Wrong with Your Cloud Strategy ?

Even as many CIOs are embracing a cloud-first strategy, the reality is that moving to the cloud is a lengthy process and the end-state is likely to be a blend of multiple clouds—public and private. Learn why multicloud solutions matter in this webinar by Nimble Storage.

Question has a verified solution.

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

Article by: Ivo
C# And Nullable Types Since 2.0 C# has Nullable(T) Generic Structure. The idea behind is to allow value type objects to have null values just like reference types have. This concerns scenarios where not all data sources have values (like a databa…
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Are you ready to place your question in front of subject-matter experts for more timely responses? With the release of Priority Question, Premium Members, Team Accounts and Qualified Experts can now identify the emergent level of their issue, signal…
Suggested Courses

649 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