Problem mit Gleitkommazahlen
-
float p,q,x1,x2,S1,S2,a; ... x1=(-1.00*(p/2.00))+sqrt(((p*p)-(4.00*q))/4.00); x2=(-1.00*(p/2.00))-sqrt(((p*p)-(4.00*q))/4.00); S1=(-1.00*(p/2.00)); S2=(-1.00*((p*p)/4.00))+q; gotoxy(10,8);cout<<"X1 beträgt: "<<x1; gotoxy(10,9);cout<<"X2 beträgt: "<<x2;
Wenn ich diese Funktion ausführe, und die Werte für p und q eingegeben habe kommt folgende Fehlermeldung: "Ungültige Gleitkommaoperation"
-
bitte übersichtlicher
-
geht nicht übersichtlicher!
-
Hi!
Natürlich geht das übersichtlicher, z.B. mit Zeilenumbrüchen. Man muss nicht alles in einer Zeile schreiben in C, man kann es auch auf mehrere verteilen und Leerzeichen kennt C auch, gibt es auch keine Probleme mit.
Du musst hinter Gleitkommazahlen (konstanten) die nicht vom Typ double sind ein f oder F schreiben, dann werden diese als float behandelt und nicht als double:
float x = 1.23f // oder float x = 1.23F;
Code-Hacker
-
Funktioniert ja in ner anderen Funktion auch so, wie oben geschrieben, nur bei dieser Funktion nicht!
Das mit den Zeilenumbrüchen weiß ich selbst. bin nur ein wenig wütend, wollte deshalb nicht mit Zeilenumbrüchen schreiben.
-
Hi!
Wenn es an dem f/F hinter den konstaten Werten nicht liegt, wäre evtl. mehr Code interessant oder an welcher Stelle genau (Zeile) der Fehler gemeldet wird.
Code-Hacker
-
gotoxy(10,8);cout<<"X1 beträgt: "<<x1;
Dort soll der Fehler laut Debugger sein.
Und der Fehler tritt nur beim ausführen von der Funktion auf, nicht beim compilieren!
-
Hi!
Noch etwas, du bist hier im falschen Forum. cout ist C++ und nicht C. Aber wo der Fehler liegt weiß ich auch nicht. Eigentlich dürfte es kein Problem sein eine Gleitkommazahl auszugeben.
Code-Hacker
-
lblbw schrieb:
gotoxy(10,8);cout<<"X1 beträgt: "<<x1;
Dort soll der Fehler laut Debugger sein.
Und der Fehler tritt nur beim ausführen von der Funktion auf, nicht beim compilieren!
Genau wegen solchen Aussagen sprach Code-Hacker von Zeilenumbrüchen. Nach wie vor weiss niemand von uns, in welcher Anweisung der Fehler auftrat. Grenze deshalb den Fehler weiter ein.
Was genau sagt denn dein Debugger?
-
Problem hat sich erledigt. Habe es hingekriegt!