Veröffentlicht 28. Februar 200520 j Warum kommt er nicht in if Bedingung rein ? CString s = "8538710019"; if(atol(s) > 8000000000 && atol(s) < 10000000000) cout << (const TCHAR*)s << endl; [/PHP]
28. Februar 200520 j if(_atoi64(s) > 8000000000 && _atoi64(s) < 10000000000) cout << s << endl;[/CODE] Der Cast bei cout ist unnötig.
28. Februar 200520 j und warum _atoi64 und nicht atofHier ist es noch egal, wenn man nur das Ergebnis betrachtet. Aber sobald du Zahlen mit mehr als 15 Stellen hast, bist du mit double am Ende der Genauigkeit angekommen. Mit __int64 hast du immerhin fast 19 Stellen. Allgemein solltest du auf Fließkommatypen verzichten, wenn es mit Ganzzahltypen auch geht.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.