bruch wird immer aufgerundet...?
-
hey geeks,
hab folgendes problem:
ich will ne double als bruch von zwei ganzen zahlen definieren!bpls:
double a; a=9/8;
ergebnis:
a wurde der wert 1 zugewiesen?!?
wie bekomme ich es hin, dass a der wert (hier beispielsweise) 1.125 zugewiesen wird?robby
-
9 ist int, 8 ist int, also muss 9/8 auch int sein. Wenn du die Division mit double ausgeführt haben willst, muss mindestens ein Operand den Typ double haben:
a = 9.0 / 8; // beispielsweise
-
Bashar schrieb:
9 ist int, 8 ist int, also muss 9/8 auch int sein. Wenn du die Division mit double ausgeführt haben willst, muss mindestens ein Operand den Typ double haben:
a = 9.0 / 8; // beispielsweise
juhuu! danke! das funktioniert jetzt!
weitere frage: wie kann ich die anzahl der ziffern hinter dem komma vergrößern? ich habe immer nur 5 stellen nach dem komma...
-
also das war noch ein bisschen trickreicher bei mir...
denn
ich hattea=b/c;
wobei b und c vorher aus int berechnet wurde...(geht um die fibonacci-folge)
hab dann b und c als d und f definiert, welche dann doubles waren.
jedoch gleiches problem
es kam eine ganzzahlige lösung
und dann kam ich auf die dumme idee.
ich habe folgendes geschrieben:int a,b,c; double e,f; //b und c haben vorher definierten wert, der bereits berechnet wurde vom prog e=b/*!!!*/+0.0/*!!!*/; f=c; a=e/f;
haha und das hat funktioniert!!!
durch das blöde "+0.0"
XD
-
treborek schrieb:
Bashar schrieb:
9 ist int, 8 ist int, also muss 9/8 auch int sein. Wenn du die Division mit double ausgeführt haben willst, muss mindestens ein Operand den Typ double haben:
a = 9.0 / 8; // beispielsweise
juhuu! danke! das funktioniert jetzt!
weitere frage: wie kann ich die anzahl der ziffern hinter dem komma vergrößern? ich habe immer nur 5 stellen nach dem komma...
hat sich erledigt:
cout.precision(9);
bringt neun stellen...
habs gefunden