2 import java.util.Scanner;
3
4 /**
5 * NumberTest zeigt den Umgang mit der Klasse Number.
6 * Beispielprogramm zur Programmiertechnik 1, Teil 5.
7 * @author H.Drachenfels
8 * @version 16.12.2024
9 */
10 public final class NumberTest {
11 private NumberTest() { }
12
13 /**
14 * main ist der Startpunkt des Programms.
15 * @param args Feld mit Dezimalzahlen
16 */
17 public static void main(String[] args) {
18 for (String z : args) {
19 Scanner s = new Scanner(z);
20 Number n;
21
22 if (s.hasNextByte()) {
23 n = Byte.valueOf(s.nextByte());
24 } else if (s.hasNextShort()) {
25 n = Short.valueOf(s.nextShort());
26 } else if (s.hasNextInt()) {
27 n = Integer.valueOf(s.nextInt());
28 } else if (s.hasNextLong()) {
29 n = Long.valueOf(s.nextLong());
30 } else if (s.hasNextDouble()) {
31 double d = s.nextDouble();
32 if (z.length() <= Float.PRECISION / 3
33 && Math.abs(d) <= Float.MAX_VALUE
34 && Math.abs(d) >= Float.MIN_VALUE) {
35 n = Float.valueOf((float) d);
36 } else {
37 n = Double.valueOf(d);
38 }
39 } else {
40 System.err.printf("Not a number: %s%n", z);
41 continue;
42 }
43
44 System.out.printf("%s(%s):%n", n.getClass().getSimpleName(), n);
45 System.out.println(n.byteValue());
46 System.out.println(n.shortValue());
47 System.out.println(n.intValue());
48 System.out.println(n.longValue());
49 System.out.println(n.floatValue());
50 System.out.println(n.doubleValue());
51 }
52 }
53 }
54