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;
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?
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
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;
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden