Forum:  Informatik
Thema: C - double Genauigkeit
Themen-Übersicht
JamesNguyen
Aktiv
Dabei seit: 08.11.2020
Mitteilungen: 187
Themenstart: 2021-02-28 00:24

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

  1. #include <stdio.h>
  2.  
  3. double quwl ( double ) ;
  4.  
  5. int main ( void )
  6. {
  7. printf ( "%.18f\n" , quwl ( 3 ) ) ;
  8.  
  9.  
  10. return 0 ;
  11. }
  12.  
  13. double quwl ( double rad )
  14. {
  15. auto double xN = 1 , xNplus1 = rad ;
  16.  
  17. auto unsigned char i ;
  18.  
  19. for ( i = 1 ; i < 10 ; i ++ )
  20. {
  21. xN = xNplus1 ;
  22. xNplus1 = 1 / ( 2 * xN ) * ( xN * xN + rad ) ;
  23. }
  24.  
  25. return xNplus1 ;
  26. }


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


JamesNguyen
Aktiv
Dabei seit: 08.11.2020
Mitteilungen: 187
Beitrag No.1, vom Themenstarter, eingetragen 2021-02-28 00:55

ok korrigiert




Dieses Forumbeitrag kommt von Matroids Matheplanet
https://https://matheplanet.de

Die URL für dieses Forum-Thema ist:
https://https://matheplanet.de/default3.html?topic=252597=51
Druckdatum: 2021-05-17 02:38