Typumwandlung



  • Dasselbe, was ich schon zuvor über »char nach int« geschrieben habe, gilt für implizite Umwandlungen von float nach double. Auch hierbei wird bei Berechnungen ein float automatisch in ein double konvertiert. Daher erfolgen alle Berechnungen immer mit derselben Genauigkeit.

    Sollte ich IMMER int verwenden?
    Wenn ein char wert(1-100) sowieso in einen Integer wert umgewandelt wird.
    Und sollte ich auch immer double verwenden statt float?



  • Wenn du große Mengen von diesen Typen brauchst, dann kannst du dir Gedanken machen, ob ein kleinerer Typ besser ist.

    Mit char solltest du sowieso nicht rechnen. Wenn dann signed char oder unsigned char
    char ist für Zeichen.

    Wenn du Gründe für char, short oder float hast, dann nimm diese Typen, sonst int oder double .

    Dabei solltest du aber daran denken, dass int nicht unbedingt den Wertebereich von long abdeckt.
    Das kann auch nur short sein.



  • Du benutzt int, long etc. am besten nie direkt sondern immer nur die typedefs aus <cstdint>, also std::int32_t, std::int64_t etc. std::size_t natürlich auch, wenn du Array/Containergrößen darstellen willst. Und wenn du ein std::uint16_t brauchst, dann nimm ein std::uint16_t, das kann dir in 99.9% der Fällen ziemlich egal sein ob die CPU trotzdem mit 64 bit rechnet. Der Unterschied bei double/float ist dass du da einfach gratis Präzision aufgibst, und es gibt selten einen Grund gratis Präzision aufzugeben.


Anmelden zum Antworten