/***************************************************************/ /* Verfasser: Prof. Dr. Gregor Büchel */ /* Source : BigDez1.java */ /* Zweck : BigDecimal-Arithmetik, NaKo bezeichnet die Anzahl*/ /* der Nachkommastellen (scale) */ /* Stand : 14.11.2005 / 30.11.2007 */ /***************************************************************/ import java.math.*; class BigDez1 {public static void main(String args[]) {BigDecimal a, b, c=null; String as, bs; int na, nb, nc, w=1; char op; do {System.out.print("a : "); as=IO1.einstring(); System.out.print("OP : "); op=IO1.einchar(); System.out.print("b : "); bs=IO1.einstring(); a=new BigDecimal(as); b=new BigDecimal(bs); na=a.scale(); nb=b.scale(); System.out.println(" "); System.out.println("a = "+a+" NaKo = "+na); System.out.println("b = "+b+" NaKo = "+nb); switch(op) {case '+': c=a.add(b); break; case '-': c=a.subtract(b); break; case '*': c=a.multiply(b); break; case '/': nc=10*(a.scale()+b.scale()); c=a.divide(b,nc,4); break; } nc=c.scale(); System.out.println("c = "+c+" NaKo = "+nc); do { System.out.println("Neue Skalierung des Ergebnisses? (NaKo >= 1 !)(ENDE: NAKO = -1"); nc=IO1.einint(); c=c.setScale(nc,4); System.out.println("c = "+c+" NaKo = "+nc); } while (nc!=-1); System.out.println("WEITERE Rechnungen ? (ja=1)"); w=IO1.einint(); } while(w==1); } }