ckerl Geschrieben 22. Oktober 2002 Geschrieben 22. Oktober 2002 Diese Zeile soll ich so um bauen das sie mir das gleiche ergebnis ausgibt aber als integer! e = (double)p * .512 / 1000; weis jemand rat ich habe mir das so gedacht: l = p * 512 / 1000; doch das ergebnis ist viel zu hoch! e = (double)p * .512 / 1000; Zitieren
Klotzkopp Geschrieben 22. Oktober 2002 Geschrieben 22. Oktober 2002 Da musst Du schon etwas genauer werden. Das gleiche Ergebnis wirst Du in den meisten Fällen gar nicht erhalten können. Willst Du ein Ergebnis, bei dem die Nachkommastellen abgeschnitten wurden? Oder ein gerundetes Ergebnis? Oder willst Du wirklich Integerarithmetik? Das gibt dann wieder ein anderes Ergebnis. Und was sind e, p und l? Zitieren
ckerl Geschrieben 22. Oktober 2002 Autor Geschrieben 22. Oktober 2002 #include <stdio.h> int main(void) { long p = 19640880; double e; long l; e = (double)p * .512 / 1000; l = p * 512 /1000; printf(" %lf\n", e); printf(" %i\n", l); return 0; } das ist mein code ich hoffe er hilf dir weiter und es soll Integerarithmetik sein danke Zitieren
Klotzkopp Geschrieben 22. Oktober 2002 Geschrieben 22. Oktober 2002 Das Problem ist, dass p * 512 den Wertebereich eines long überschreitet. Wenn man es ein wenig zerstückelt, dann gehts: l = p * 8 / 1000 * 64 / 1000; Zitieren
ckerl Geschrieben 22. Oktober 2002 Autor Geschrieben 22. Oktober 2002 Hey danke manchmal barauch man einfach nur jemanden der ein auf das ziel schupst ;-) big thx Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.