Define a utility class for displaying values of type double. Call the class DoubleOut. Include all the

Question:

Define a utility class for displaying values of type double. Call the class DoubleOut. Include all the methods from the class DollarFormat in Listing 6.14, all the methods from the class OutputFormat of Self-Test Question 30, and a method called scienceWrite that displays a value of type double using e notation, such as 2.13e–12. (This e notation is also called scientific notation, which explains the method name.) When displayed in e notation, the number should appear with exactly one nonzero digit before the decimal point unless the number is exactly zero. The method scienceWrite will not advance to the next line. Also add a method called scienceWriteln that is the same as scienceWrite except that it does advance to the next line. All but the last two method definitions can simply be copied from the text (or more easily from the source code for this book that is available on the Web.). Note that you will be overloading the method names write and writeln.

Write a driver program to test your method scienceWriteln. This driver program should use a stub for the method scienceWrite. (Note that this means you can write and test scienceWriteln before you even write scienceWrite.) Then write a driver program to test the method scienceWrite. Finally, write a program that is a sort of super driver program that takes a double value as input and then displays it using the two writeln methods and the scienceWriteln method. Use the number 5 for the number of digits after the decimal point when you need to specify such a number. This super driver program should allow the user to repeat this testing with additional numbers of type double until the user is ready to end the program.


Self-Test Question 30

Design a class to display values of type double that are not necessarily for money amounts. Call the class OutputFormat. It should have two static methods, write and writeln, each of which takes two arguments. The first argument gives a double value to be written to the screen. The second argument is an int value telling how many digits to show after the decimal point. Have your methods round any extra digits. These methods are similar to the methods write and writeln in the class DollarFormat. Although you can use the class DollarFormat as a model, the methods in these two classes have some differences. As you would expect, any output occurring after write executes will be on the same line, and output occurring after writeln executes will be on the following line; otherwise, write and writeln do the same thing. For example, the statements

OutputFormat.writeln(9.1234667, 4);
OutputFormat.writeln(9.9999, 2);
OutputFormat.writeln(7.01234, 4);

should produce the following output:

9.1235
10.00
7.0123

Do not forget to test your methods with numbers that have zeros after the decimal point, like 1.023 and 1.0023. [Hint: You may find the static method Math.pow (Figure 6.3) helpful as part of an expression to move a decimal point.] This is a fairly difficult exercise, so allow yourself some time to complete it. If you do not succeed in writing this class, be sure that you at least understand the answer given at the end of the chapter. This is a very useful class.


Figure 6.3

Description Argument Return Туре Name Example Value Туре Returned pow Power double double Math.pow (2.0,3.0) 8.0 Math.abs (-7) Math.abs (7) Math.abs (-3.5) abs Absolute int, Same as the 7 long, float,or type of the argument value 7 3.5 double Math.max (5, 6) Math.max (5.5, 5.3) max Maximum int, Same as

Fantastic news! We've Found the answer you've been seeking!

Step by Step Answer:

Question Posted: