Forum: Compiler & IDEs Typumwandlung


von Gast (Gast)


Lesenswert?

hallo Leute,

float f=10,1234;
unsigned long ul;

ul=(unsigned long) f;

Welcher Wert steht in ul?
ul=10 oder ul=101234

danke

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Selbst wenn die erste Zeile korrekt mit einem Dezimalpunkt statt des 
Kommas geschrieben wäre, stünde in ul der Wert 10.

Definitiv nie wird 101234 in ul stehen.

von Gast (Gast)


Lesenswert?

danke
der Meinung bin ich auch

von Karl H. (kbuchegg)


Lesenswert?

Rufus t. Firefly schrieb:
> Selbst wenn die erste Zeile korrekt mit einem Dezimalpunkt statt des
> Kommas geschrieben wäre, stünde in ul der Wert 10.
>
> Definitiv nie wird 101234 in ul stehen.

@TO

Und wenn du das andere brauchst und jetzt mit dem Gedanken spielst:
1
float f=10,1234;
2
unsigned long ul;
3
4
ul=(unsigned long)( f * 10000 );

dann könnte es sein, dass ul danach 101233 ist :-)
1
float f=10,1234;
2
unsigned long ul;
3
4
ul=(unsigned long)( f * 10000 + 0.5);

von Klaus W. (mfgkw)


Lesenswert?

Du meintest bestimmt:
1
  float f= ( 10,1234 );
2
  unsigned long ul;
3
  ul = (unsigned long)f;
, also mit Klammern, damit es syntaktisch korrekt wird.
Dann ist die Antwort: 1234

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.