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 hatte

    a=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
    😃


Anmelden zum Antworten