|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
derUnwissende Mini JLI'ler
Anmeldedatum: 14.11.2002 Beiträge: 32
Medaillen: Keine
|
Verfasst am: 13.12.2003, 17:43 Titel: Probleme mit double |
|
|
Hi,
irgendwie is es etwas seltsam, ich hab ne variable vom typ double z.B. a, wenn die den wert 4 hat, dann gibt er mir als int wert von a 3 zurück
im konkreten fall bei mir,
wir sollte für die schule eine Funktion schreiben, was die Stellen einer Zahl nur soweit wie nötig ausgibt also z.B. nicht 3.4000... sondern nur 3.4
so ich hab das so geschrieben:
Code: |
void xAusgabe(double Zahl)
{
cout<<int(Zahl);
if(Zahl != int(Zahl))
{
cout<<".";
do
{
Zahl-=int(Zahl); // PROBLEM
Zahl*= 10;
cout<<int(Zahl);
}while(Zahl != 0);
}
cout<<"\n";
}
|
(sollte das eigendlich für pascal machen, aber da ich das momentan nich aufm rechner hab, wollte ich es wenigstens ma mit c++ ausprobieren)
also das, tritt auf, wenn die Variable eigendlich ein int-Wert is, dann wird aus 4 - int(4) = 0.9999999... |
|
Nach oben |
|
|
me Junior JLI'ler
Anmeldedatum: 10.09.2003 Beiträge: 60
Medaillen: Keine
|
|
Nach oben |
|
|
derUnwissende Mini JLI'ler
Anmeldedatum: 14.11.2002 Beiträge: 32
Medaillen: Keine
|
Verfasst am: 14.12.2003, 19:43 Titel: |
|
|
danke,
ansich bräuchte man eine solche funktion wie wir sie schreiben sollten in c++ nicht, da der ja die unwichtigen nullen nicht ausgibt, aber in pascal halt und deswegen bringen mir die befehle leider auch nichts. Aber irgendwie is es halt komisch das z.B. bei dem wert 4 der integer wert nicht 4 ist, woran leigt dass der diesen fehler macht, und wie kann man das verhindern?
trotzdem danke |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 14.12.2003, 19:50 Titel: |
|
|
Du kannst das ja mal probieren:
neuezahl=int(zahl+0.5);
oder du nutzt die round funktion. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|