double zu int convertieren



  • hey,

    Ich hab heute ein Programm geschrieben, in dem ich doubles zu int konvertiert habe nach dem Schema:

    double eingabe2=73.82;
    int eingabe;
    eingabe=(int) (eingabe2*100);
    
    cout<<eingabe<<endl;
    

    Eigentlich hatte ich mit dieser Konvertierungsart nie Probleme. Doch bei diesm Progamm ist die Ausgabe: 7381 und nicht 7382.
    Warum ist das so?
    Wie konventiert ihr double zu ints? Ich benötige unbedingt ein Quellcode der dies aufgabe für mich erledigt.

    mfg alex



  • eingabe=(int) (eingabe2*100+0.5);
    

    Das liegt daran das Gleitkommazahlen die Zahl
    nicht immer genau darstellen.
    D.h. statt 73.82 steht dann da 73.81999999
    du multiplizierst mit Hundert und erhältst
    7381.99999999999, wenn du dann einfach die
    Nachkommastellen abschneidest kriegst du das
    falsche Ergebnis.
    Darum +0.5, dann wird richtig gerunded.



  • ist ja wirr... Danke


Anmelden zum Antworten