frage zu berechnungen in c
-
also ich gebe folgende berechnung ein
b=10
c=-2x1=((-b)+sqrt((pow(b,2)-4*c)))*(1/2);
er spuckt mir als ergebnis 0.00 aus
so wenn ich jetzt schreibe
x1=((-b)+sqrt((pow(b,2)-4*c)))*0.5;
wird ausgegeben 0.196...
das ergebnis was ich auch haben will!!! aber wieso macht er das oben nicht ist doch das gleiche
genau so wie
x1=2/6; da müsste doch 2:6 gerechnet werden ich verstehe das gerade mal garnicht
-
Datentyp-Problem:
1 / 2 = 0 Rest 1
-
kannst du das evt bisschen genauer erklären verstehe nicht was du meinst
-
Philippr1g schrieb:
kannst du das evt bisschen genauer erklären verstehe nicht was du meinst
Berechnungen zwischen Werten vom Typ int haben als Ergebnis auch wieder int, d.h. dass bei der Division im Fall des Falles abgerundet wird, um wieder auf ein int zu kommen. Wenn du ein double als Ergebnis willst, muss mindestens ein Operand auch double sein, z.B.
1.0/2
.
-
ah super Danke jetzt habe ich es verstanden
-
ich hätte da noch eine kleine frage und möchte dafür kein neues Thema aufmachen
also ich rechne eine guadratsiche gleichung aus
habe nun den x1 wert und den x2 wert
x1=0 x2=-3
nun rechne ich ja nach vieta um q zu bekommen
x1*x2 da bekomme ich aber -0.000 raus wie kann ich amchen das da 0.00 kommt und nicht -
-
Das kannst du zwar umrechnen, aber wieso solltest du das wollen? Ist dir nicht klar, was -0 bedeutet?