Domino 9 und frühere Versionen > ND6: Entwicklung

Datum und Zeitbrechnung

<< < (9/9)

Marinero Atlántico:
ok. Fertig.
BigDecimal ROCKS   8) O0 8)

--- Code: ---public class ASimpleMathQuestion {

public static void main(String[] args) {

//System.out.println("a simple math task for my computer...\na) using double: (1 / 3) * 3=" + ((1/3) + 3));
//System.out.print("b) using BigDecimal: (1 / 3) * 3=");
int scale = 10000;
double dSum = 0;
double dOneThird = (double) 1/3;
BigDecimal anOne = new BigDecimal(1);

BigDecimal aThree = new BigDecimal(3);
BigDecimal aOneThird = anOne.divide(aThree, scale, BigDecimal.ROUND_HALF_DOWN);
BigDecimal theSum = new BigDecimal(0);
for (int i = 0; i<= 1000; i++) {
theSum = theSum.add(aOneThird);
dSum += dOneThird;
}

System.out.println("theSum (BigDecimal=" + theSum);
System.out.println("dSum (double)=" + dSum);



}
}

--- Ende Code ---

Ergebnis:
theSum (BigDecimal=333.<9998_mal_die_6>333 *
dSum (double)=333.66666666666515

* kann hier nicht dargestellt werden. Habs in Textpad kopiert und da waren 9998 6en nach dem Komma. Wenn ich den scale Wert noch höher als 10000 setze, dürte es noch genauer werden, aber hier gibts natürlich auch irgendwo eine Grenze.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln