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:
Mein Programm:
(IO ist in einer eigenen Klasse von mir deffiniert/daran kann das Problem nicht liegen)
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 );
}
}