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"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 301


Previous 1060 Stories (530 Pages, 2 Per Page) Next

Number to String Conversion

Go to all tips in Mathematics

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.

93 comments | Printer Friendly Page  Send to a Friend | Score: 3.33
Posted by jalex on Saturday, February 05, 2005 (00:00:00) (12880 reads)

Autoboxing

Go to all tips in General Java

Java: Autoboxing

Autoboxing, introduced in Java 5, is the automatic conversion that Java makes between the primitive (basic) types and their corresponding object wrapper classes (eg, int and Integer, boolean and Boolean, etc). This sugar coating the avoids the tedious and hard-to-read casting typically required by Java Collections, which can not be used with primitive types.

Example

With AutoboxingWithout Autoboxing
int i;
Integer j;
i = 1;
j = 2;
i = j;
j = i;
int i;
Integer j;
i = 1;
j = new Integer(2);
i = j.valueOf();
j = new Integer(i);

Prefer primitive types

Use the primitive types where there is no need for objects for two reasons.

  1. Primitive types will not be slower than their corresponding wrapper types, and may be a lot faster.
  2. There can be some unexepected behavior involving == (compare references) and .equals() (compare values). See the reference below for examples.

References



10 comments | Printer Friendly Page  Send to a Friend | Score: 0
Posted by jalex on Friday, February 04, 2005 (00:00:00) (3465 reads)

Previous 1060 Stories (530 Pages, 2 Per Page) Next

530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464| 463| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452| 451| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338| 337| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310| 309| 308| 307| 306| 305| 304| 303| 302|
301
| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182| 181| 180| 179| 178| 177| 176| 175| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141| 140| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85| 84| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


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