Negative Floatzahl in negative Integerzahl umwandeln

Gast #3219698
Lesenswert?

Hallo Leute,
stehe vor einem hoffentlich kleinen Problem.

Habe eine Zahl vom Typ Float, (bsw. 323.34) welche ich mit 10 
multipliziere (um eine Nachkommastelle zu behalten) und als int-Variable 
speichere und diese Int-Zahl dann  folgendermaßen zerlege:

intnumber=zahl*10;

nachkomma=intnumber%10;
einer=(intnumber%100)/10;
zehner=(intnumber%1000)/100;
hunderter=(intnumber%10000)/1000;


Mein Problem: Es kann sein, das die Floatzahl negativ ist und dann 
"intnumber=zahl*10;" nicht mehr geht.

Was kann ich also machen, um aus einer negativen Floatzahl eine negative 
Intzahl zu erhalten, damit meine "Zerlegung" weiterhin läuft?
Gast #3219755
Lesenswert?

Guenther33 schrieb:

> Mein Problem: Es kann sein, das die Floatzahl negativ ist und dann
> "intnumber=zahl*10;" nicht mehr geht.

Wieso soll das nicht gehen? Das geht natürlich, solange "Zahl" nicht 
kleiner als -3276,8 ist. Genauso wie es im positiven Bereich geht, 
solange "Zahl" nicht größer als 3276,7 ist.

> Was kann ich also machen, um aus einer negativen Floatzahl eine negative
> Intzahl zu erhalten, damit meine "Zerlegung" weiterhin läuft?

Du hast das Problem nicht erkannt. Was Mist ist, ist deine Zerlegung. 
Die muß einfach anders arbeiten, wenn "intnumber" negativ ist. Am 
einfachsten merkst du dir, daß "intnumber" negativ ist und machst sie 
wieder positiv, z.B. durch Multiplikation mit -1.

Dann funktioniert deine Zerlegung wieder. Du mußt bloß noch die gemerkte 
Tatsache der Negativität in Form eines führenden Minuszeichen ausgeben 
und der Drops ist gelutscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren