#2: Java can't format numbers

import java.text.*;


public class PrettierTable {

  public static void main(String[] args) {
  
    NumberFormat myFormat = NumberFormat.getNumberInstance();
    FieldPosition fp = new FieldPosition(NumberFormat.INTEGER_FIELD);
    myFormat.setMaximumIntegerDigits(3);
    myFormat.setMaximumFractionDigits(2);
    myFormat.setMinimumFractionDigits(2);
    
    System.out.println("Degrees  Radians  Grads");
    for (double degrees = 0.0; degrees < 360.0; degrees++) {
      String radianString = myFormat.format(Math.PI * degrees / 180.0, 
       new StringBuffer(), fp).toString();
      radianString = getSpaces(3 - fp.getEndIndex()) + radianString;
      String gradString = myFormat.format(400 * degrees / 360, 
       new StringBuffer(), fp).toString();
      gradString = getSpaces(3 - fp.getEndIndex()) + gradString;
      String degreeString = myFormat.format(degrees, 
       new StringBuffer(), fp).toString();
      degreeString = getSpaces(3 - fp.getEndIndex()) + degreeString;
      System.out.println(degreeString + "  " + radianString 
       + "  " + gradString);
    }
    
  }
    
  public static String getSpaces(int n) {
  
    StringBuffer sb = new StringBuffer(n);
    for (int i = 0; i < n; i++) sb.append(' ');
    return sb.toString();
    
  }
  
}

java PrettyTable | more
Degrees Radians Grads
000.00  000.00  000.00
001.00  000.01  001.11
002.00  000.03  002.22
003.00  000.05  003.33
004.00  000.06  004.44
005.00  000.08  005.55
006.00  000.10  006.66
007.00  000.12  007.77
008.00  000.13  008.88
009.00  000.15  010.00
010.00  000.17  011.11
011.00  000.19  012.22
012.00  000.20  013.33
013.00  000.22  014.44
014.00  000.24  015.55
015.00  000.26  016.66
016.00  000.27  017.77
017.00  000.29  018.88
018.00  000.31  020.00
019.00  000.33  021.11
020.00  000.34  022.22 

Previous | Next | Top | Cafe au Lait |Cafe con Leche

Copyright 1999, 2002 Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified September 30, 2002