Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Number to String Conversion

JavaFAQ Home » Mathematics Go to all tips in Mathematics


Bookmark and Share

Java: Number to String Conversion

A number can easily be converted to its equivalent decimal string representation with concatenation. To control the appearance of floating-point numbers (eg, number of decimal places) use the java.text.DecimalFormat class.

Concatenating Numbers and Strings

You can convert practically any primitive or Object type to a string by concatenating it with a String. For example,
   int x = 1;
   String s;
   s = "x = " + x;  // assigns "x = 1" to s
   s = 3.5;         // illegal, s is a String
   s = "" + 3.5;    // assigns "3.5" to s
   s = "" + 1.0/3.0;// assigns "0.3333333333333333" to s

Concatenating a string with no characters in it ("") is the usual idiom for converting something to a string. There are ways to do this, such as the highly overloaded StringBuffer append(x) and String.valueOf(x) methods.

The problem with floating-point numbers is that you have no control over the number of decimal places the conversion chooses for you, as you can see in the above example.

java.text.DecimalFormat

The java.text.DecimalFormat class provides many ways to format numbers into strings, including number of fraction digits, using a currency symbol ($12.35), scientific notation (3.085e24), percentage scaling (33%), and locale (national) formatting options (3,000.50 or 3.000,50 or 3'000,50 or ...), different patterns for positive, zero, and negative numbers, etc. These notes show only how to specify the number of fraction digits. Check the Java API documentation for other options.

First, create a DecimalFormat object which specifies the format of the number. The zero before the decimal point means that at least one digit is produced, even if it is zero. The zeros after the decimal point specify how many fraction digits are produced.
import java.text.DecimalFormat;
. . .
// Create the DecimalFormat object only one time.
DecimalFormat myformat2 = new DecimalFormat("0.00");
. . .
// Use the formatting object many times.
System.out.println(myformat2.format(1.0/3.0)); // prints 0.33
This program uses the same formatting object many times.
import java.text.DecimalFormat;
public class FormatTest {
    public static void main(String[] args) {
        DecimalFormat myformat = new DecimalFormat("0.0000");
        for (int i=1; i<=10; i++) {
            System.out.println(myformat.format(1.0/i));
        }
    }
}    

Rounding

Floating-point numbers may be rounded when using DecimalFormat or the Math.round method. Rounding uses the half even method which rounds to the nearest neighbor. If the number is exactly between its neighbors, it is rounded to the even neighbor. The reason middle values are rounded to the even value, instead of up as is commonly done, is to prevent an accumulation of errors.

Examples: 3.1 rounds to 3, 3.8 rounds to 4, 3.5 rounds to 4, but 4.5 also rounds to 4, 5.5 rounds to 6.
 Printer Friendly Page  Printer Friendly Page
 Send to a Friend  Send to a Friend

.. Bookmark and Share

Search here again if you need more info!
Custom Search



Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy