Ich nix verstehe!



  • #include <iostream>
    #define PI 3.1111111111222222222233333333334444444444555555555566666666667777777777
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        short myShort = 32767;
        int myInt = 2147483647;
        float myFloat = PI + 10;
        double myDouble = PI;
    
        cout.precision(61);
    
        cout << "short " << myShort << endl;
        cout << "int " << myInt << endl;
        cout << "float " << myFloat << endl;
        cout << "double " << myDouble << endl;
    
        return 0;
    }
    

    /*
    cout.precision(61);

    Soll angeblich 60 nachkommastellen anzeigen, bei mir aber vlt 40 oder so. und es verändert den wert!
    Kann mir jemand sagen was da passiert bin sehr dankbar:)

    ab der 17. stelle ändert es sich

    */



  • Wo hast Du denn diesen Wert für pi her? 😮

    Das passiert.



  • wenn ich 3.141592653589793238462643383279502884197169399375105820974944
    für pi einsetze dann bekomme ich was "ordentlicheres" aber ich verstehe immernoch nicht warum es keine 60 stellen sind 😃



  • HelpIneedSomebodyHelp schrieb:

    wenn ich 3.141592653589793238462643383279502884197169399375105820974944
    für pi einsetze dann bekomme ich was "ordentlicheres" aber ich verstehe immernoch nicht warum es keine 60 stellen sind 😃

    double hat bei 64 Bit nur 17 signifikante Stellen.
    Du kannst nicht mehr Information in eine Variable quetschen, als diese auf Grund ihrer Bitzahl aufnehmen kann.



  • Aber du darfst nicht signifikante Stellen mit Nachkommastellen gleichsetzen.


Anmelden zum Antworten