CS 101 Homework

import java.text.*;
import java.io.*;


public class RootFinder {

  public static void main(String[] args) {
  
    Number input = null;
    
    try {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      NumberFormat nf = NumberFormat.getInstance();
      while (true) {
        System.out.println("Enter a number (-1 to quit): ");
        String s = br.readLine();
        try {
          input = nf.parse(s);
        }
        catch (ParseException e) {
          System.out.println(s + " is not a number I understand.");
          continue;
        }
        double d = input.doubleValue();
        if (d < 0) break;
        double root = Math.sqrt(d);
        System.out.println("The square root of " + s + " is " + root);
      }
    }
    catch (IOException e) {
      System.err.println(e);  
    }
    
  }

}


Output:
% java RootFinder
Enter a number (-1 to quit): 
87
The square root of 87 is 9.327379053088816
Enter a number (-1 to quit): 
65.4
The square root of 65.4 is 8.087026647662292
Enter a number (-1 to quit): 
3.151592
The square root of 3.151592 is 1.7752723734683644
Enter a number (-1 to quit): 
2,345,678
The square root of 2,345,678 is 1531.5606419596973
Enter a number (-1 to quit): 
2.998E+8
The square root of 2.998E+8 is 1.7314733610425546
Enter a number (-1 to quit): 
299800000
The square root of 299800000 is 17314.733610425545
Enter a number (-1 to quit): 
0.0
The square root of 0.0 is 0.0
Enter a number (-1 to quit): 
four
four is not a number I understand.
Enter a number (-1 to quit): 
4
The square root of 4 is 2.0
Enter a number (-1 to quit): 
Enter a number (-1 to quit): 
(12)
(12) is not a number I understand.
-1


Copyright 2000 Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified January 29, 2000