C - Doulbe Berechnungen und Genauigkeit



  • Hallo,

    ich soll ein Programm schreiben das die Wurzel berechnet und mit höchstmöglicher Genauigkeit das Ergebnis zurückgibt

    ich beschränke mich hier auf double

    #include <stdio.h>

    double quwl ( double ) ;

    int main ( void )
    {
    printf ( "%.18f\n" , quwl ( 3 ) ) ;

    return 0 ;
    

    }

    double quwl ( double rad )
    {
    auto double xN = 1 , xNplus1 = rad ;

    auto unsigned char i ;
    
    for ( i = 1 ; i < 10 ; i ++ )
    {
    	xN = xNplus1 ;
    	xNplus1 = 1 / ( 2 * xN ) * ( xN * xN + rad ) ;
    }
    
    return xNplus1 ;
    

    }

    1. Ich verstehe zumindest nicht so ganz die Genauigkeit der Berechnung meiner Ausgaben in Verbindung mit der Genauigkeit von double

    Dazu ist meine Frage auch ob die Genauigkeit von double allgemein
    15 siginifikante Stellen sind? (also auch bei meinem System und Compilter?)

    Wieso bspw. bei wurzel 3 gibt er mir sogar 17 signifkante stellen richtig zurück

    Wenn das so ist von wie vielen signifkanten Stellen kann ich dann sicher ausgehen dass sie richtig sind und meine Ausgabewerte darauf beschränken?

    Wenn ich das geklärt habe wie kann ich den Rückgabewert im COde überhaupt auf eine bestimmt Stellen anzahl beschränken?

    Weil normalerweise kommt das ja erst in der Ausgabe über die breite im Formatplatzhalter also %15f oder so?

    Danke,
    James



  • ok korrigiert


Log in to reply