WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Wo liegt der Fehler im C++ Code? (http://www.wcm.at/forum/showthread.php?t=112618)

premm 23.10.2003 09:09

Leider stimmt das nicht ganz !
 
int 2Byte -+32768
long 4Byte -+2147483648
double 8Byte ±1.8·10e308

Das heist dein Code funktioniert nur für einen Wertebereich von
+-32768

irrsinn 23.10.2003 10:02

kommt drauf an:

rein auf verdacht würd ich sagen, dass die int() funktion einen long zurückliefert. dann gehts ohne probleme.

auswendig weiß ichs aber net und find grad nix gscheites zum nachschaun

Flink 23.10.2003 12:15

Warum liest du die Eingabe nicht einfach in einen String und siehst nach, ob du ein Komma darin findest? :confused:
Mit sscanf kannst du die Zahl dann wieder in ein double einlesen.
Double-Zahlen sind ungenau. 0.9999999 könnte 1 bedeuten.

premm 23.10.2003 17:13

Zitat:

Original geschrieben von irrsinn
kommt drauf an:

rein auf verdacht würd ich sagen, dass die int() funktion einen long zurückliefert. dann gehts ohne probleme.

auswendig weiß ichs aber net und find grad nix gscheites zum nachschaun

int ist keine Funktion und auch kein Objekt, int ist ein einfacher Datentyp, der je nach System anderes definiert ist, meist jedoch 2 Byte also von -32767 -> 32768, long mit 4 Byte.

#include <cmath>
#include <iostream.h>

int main()
{
double a;

cout<<"Geben sie eine Zahl ein";
cin>>a;

if (a == floor(a))
cout<<"Ganze Zahl ";
else
cout<<"keine ganze Zahl ";
}


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag