# Wurzel auf vielen Nachkommastellen berechnen



## Kaiser206 (13. September 2007)

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:


```
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


----------



## Teambeta (13. September 2007)

```
#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 ) ;-).


----------



## RedWing (13. September 2007)

Hallo,

schau mal da:
http://gmplib.org/

Gruß,
RedWing


----------



## Kaiser206 (13. September 2007)

@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.


----------



## Teambeta (13. September 2007)

Kaiser206 hat gesagt.:


> @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.



Oh, ja.. sorry, das ich auf so einen Unsinn komme .


----------

