Hilfe mit BigDecimals

T-Head

Grünschnabel
Hi,

ich habe ein Problem mit einem kleinen Programm, dass eine Zahl n einlesen soll (BigDecimal) und diese dann nach dieser Formel berechnen soll:

6 * ( 1/1² + 1/2² + 1/3² ... 1/n² )

Das Programm funktioniert leider nur Teilwese, gebe ich z.B. 1 oder 2 ein, bekomme ich eine korekte ausgabe, gabe ich aber z.B. 3 ein bekomme ich volgenden Fehler Code:

Code:
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
	at java.math.BigDecimal.divide(BigDecimal.java:1525)
	at Pisquare.main(Pisquare.java:24)


Mein Programm:
(IO ist in einer eigenen Klasse von mir deffiniert/daran kann das Problem nicht liegen)

Code:
import java.math.*;


class Pisquare
{
	public static void main( String[] args ) throws Exception
	{
		BigDecimal uIn = IO.readBIGDECIMAL( "Geben Sie eine positive Ganzzahl ein: " );
		BigDecimal c = new BigDecimal( "0.0" );
		BigDecimal ONE = new BigDecimal( "1.0" );
		BigDecimal SIX = new BigDecimal( "6.0" );
		BigDecimal erg = new BigDecimal( "0.0" );
		
		while( uIn.equals( c ) == false )
		{
			erg = erg.add( ONE.divide( uIn.multiply( uIn ) ) );
			
			uIn = uIn.subtract( ONE );
		}
		erg = erg.multiply( SIX );
		
		IO.write( "Ergebnis: " + erg );
	}
}
 
Zurück