Veröffentlicht 22. Oktober 200222 j 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;
22. Oktober 200222 j 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?
22. Oktober 200222 j #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
22. Oktober 200222 j 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;
22. Oktober 200222 j Hey danke manchmal barauch man einfach nur jemanden der ein auf das ziel schupst ;-) big thx
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.