# long double



## Oll i (21. September 2006)

hi, leute 
hab ein Problem mit  einem Programm, dass mir eine Wurzel berechnen soll
es gibt sie natürlich nur näherungsweise an, aber mein eigentliches Problem sind die ziffern hinterm Komma ich hab einen long double deklariert(also 10 stellen hinterm Komma oder)
aber er berechnet nur auf 5 stellen.   Kann mir jemand helfen
wär echt nett!

```
#include<iostream.h>
#include<conio.h>

main(long double RD)
{
         long double ON;
         long double UN = 0;
         long double MI;
         cout << "Radikant=";
         cin >> RD;
         ON = RD;
         while(ON-UN >= 0.0000001)
         {
                     MI = (ON+UN)/2;
                     if(MI*MI>RD)
                     {
                         ON = MI;
                         cout << MI << endl;
                     }
                     else
                     {
                         UN = MI;
                         cout << MI << endl;
                     }
                     
         }
         cout << MI;
         getch();
         return(0);        
}
```


----------



## Flegmon (21. September 2006)

Füge mal die Zeile


```
cout.precision(10);
```

vor deiner Ausgabe hinzu (zB. am Anfang des Programms)
Dann sollte es gehen.

Übrigens, deine main Funktion ist so wie du sie hier gepostet hast falsch


----------



## Oll i (21. September 2006)

Hey danke, jetzt funktioniert's  
Aber wieso ist die main funktion falsch
bei mir und meinem Dev-C++ Compiler funktioniert die und es kommt keine Warnung.


----------



## jsendrow (22. September 2006)

Oll i hat gesagt.:
			
		

> Hey danke, jetzt funktioniert's
> Aber wieso ist die main funktion falsch
> bei mir und meinem Dev-C++ Compiler funktioniert die und es kommt keine Warnung.



Entgegen der (leider) weit verbreiteten Meinung vieler Programmierer ist keines der beiden Argumente ( lässt sich compilieren und funktioniert) ein akzeptables Argument für die Richtigkeit eines Programms  Ich könnte Dir sicher hunderte Beispielprogramme schreiben die zwar einwandtfrei compilieren und sogar laufen und trotzdem fehlerhaft sind.

Laut C99 müßte die main funktion lauten:

int main(void)   


Bei Deiner main-funktion ist es nicht definiert, was der Compiler daraus macht. Das kann funktionieren oder auch nicht...


----------

