Jetzt kommt es auf die Länge an!



  • Skym0sh0 schrieb:

    Decimad schrieb:

    Jetzt kommt es auf die Länge an!

    Seit wann kommt es eigentlich auf die Länge an? 😃
    Ich denke es kommt auf Schnelligkeit und Geschmack Eleganz an...

    Bin da wegen Länge auch stark irritiert! 😃 Allgemein wird eine Länge in Meter, inch, Ellen oder so gemessen! 🙂



  • Skym0sh0 schrieb:

    Jain, eine Endlosschleife entsteht, aber dein warum ist falsch. Die Antwort hat Decimad schon gepostet 😉

    Decimad schrieb:

    Ja, die int/int-Geschichten habe ich auch durchgemacht 😃

    Da bräuchte ich jetzt ein wenig Erklärungsbedarf 🙂
    Benötigt man etwas wie z.B.

    static_cast<double>(left)
    

    oder wie ist int/int-Geschichte gemeint?



  • Ja, so etwas braucht man.
    Denn wann man int/int teilt, ist das Ergebnis ebenfalls ein int. Und ints haben keinen Nachkommateil...
    Man muss einen int nach double casten um Nachkommateile zu erhalten.



  • Ok, dann ist alles klar.
    Hätte jetzt gedacht, man könne ein double mit einem int verrechnen (z.B. double 5.235 - int 3 = double 2.235), quasi, dass es automatisch den richtigen Typen einsetzt, wenn Ihr versteht was ich meine 😃

    EDIT: Da fällt mir noch ein, dass es den Datentyp "auto" gibt
    Habe hier nen kleines Beispiel gemacht, wär nett, wenn das jemand überprüfen und meine Fragen beantworten könnte. 🙂

    auto _int = 3;
    auto _double = 3.141;
    auto _string = "Test";
    

    1.Frage:
    Wenn ich jetzt schreibe

    auto Ergebnis = _double - _int;
    

    wird dann automatisch aus dem int ein double?

    2.Frage:
    Woher weiß ich, ob er ein float oder ein double setzt? Oder wird immer double gesetzt (zumindest wird es das in allen Beispielen, die ich im Internet gefunden habe)?



  • Das geht ja auch.
    Sobald eine der beiden beteiligten Typen eine Fließkommazahl ist, ist das Ergebnis auch eine, wenn du dass dann aber in einen Integer packst, verschwindet der Nachkommateil wieder.



  • Okidoki.
    Habe noch einen EDIT eingebracht, wär nett, wenn Du/Ihr das auch noch einmal anschauen könntet (habe noch nicht mit dem Typ "auto" gearbeitet). 🙂



  • Jede Kommazahl wird erstmal als Double angesehen, es sei denn du kennzeichnest sie als Float. Und das machst du mit einem f -->

    auto a = 3.14; // double
    auto b = 3.14f; // float
    auto c = 3.14F; // float
    
    auto d = 5; // int
    auto e = 5u; // unsigned int
    auto f = 5l; // long
    

    Dein "Ergebnis" wird zu einem Double...


Anmelden zum Antworten