Wurzel auf vielen Nachkommastellen berechnen

Kaiser206

Erfahrenes Mitglied
Hallo,
ich wollte mal fragen, ob es technisch möglich ist am PC eine Wurzel auf zb 100 Nachkommastellen zu berechnen. Das größte was ich geschaft habe sind nur 5:

Code:
double wurzel(double wert)
{
  x = 1;
  y = wert;
  for(int i=1;i<65536;i++)
  {
    x=(x+y)/2;
    y=wert/x;
  }
  return x;
}

wurzel(3) = 1.73205

Das Problem ist eben, dass alle Variablen eine bestimmte Grenze haben...

Danke im Vorraus
Kaiser206
 
Zuletzt bearbeitet:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double getRoot( float num );

int main( void )
{
	int iCnt = 0;
	
	for(iCnt += 1; iCnt <= 20; iCnt++ )
	{
		printf( "Root of %d is %.4f\n", iCnt, getRoot( (float)iCnt ) );
	}

	getchar();
	return EXIT_SUCCESS;
}

double 
getRoot( float num )
{
	return pow( num, 0.5f );
}

Natürlich kannst du auch einfach die Funktion sqrt aus der math.h benutzen ;-).

EDIT::

Oh, sorry, ich habe mich verlesen...

Ja, es ist möglich bis 100 Stellen nach dem Komma zu rechnen,
siehe formatierte Ausgabe ( auch bei mir im Code enthalten( .4f -> 4 Stellen nach dem Komma ) ;-).
 
Zuletzt bearbeitet:
@Teambeta
Das geht bei mir nur auf 16 Stellen nach dem Komma. Mehr sollte ja theoretisch auch nicht gehen, da eine float Variable nur eine begrenzte Anzahl von ziffern speichern kann...

@RedWing
Danke für den Link ich schaue mir das mal an.
 
Zurück