Forum: Compiler & IDEs double in unsigned long umwandeln


von Alexxx (Gast)


Lesenswert?

Hallo,

ich möchte einen double Wert in einen unsigned long Wert umwandeln.
Folgendes geht doch nicht!?
//
ulong    Longvar;
double   Doublvar= 1000.1;
Longvar= Doublvar;
// !!

Dazu müsste es doch eine Bibliotheksfunktion geben (dtolong etc.)??
auch trunc() und round() gibt's nicht mit Integer- / Long-Ergebnis...
Ich finde dazu nix passendes.

Wie macht ihr das?

PS: zur Not täte es auch float zu uint(16)...

von klugscheisser (Gast)


Lesenswert?

wie wäre es mit einem einfachen runden und dann casten?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Welchen Wert möchtest du denn in Longvar haben, wenn dein Doublvar 
1000.1 beträgt, 1000 oder 1000.1?

Könntest du damit leben, wenn in Longvar das Zehnfache steht, also 
10001, und du so später die 0.1 zurück gewinnen kannst?

von Karl H. (kbuchegg)


Lesenswert?

Alexxx schrieb:
> ich möchte einen double Wert in einen unsigned long Wert umwandeln.
> Folgendes geht doch nicht!?

Und warum soll das nicht gehen?

von Alexxx (Gast)


Lesenswert?

@ kbuchegg:
Setzt der Compiler wirklich eine Umwandlungsfunktion bei der Zuweisung 
"Longvar= Doublvar";
ein??

@ klugscheisser:
Die Frage ist, was wirklich beim Casten passiert.
wenn nur die 64-Bit double-Variable als 64-Bit Long uminterpretiert 
wird, kommt Müll raus.

Letztendlich bleibt die Frage, ob der Compiler das richtige macht.

von Karl H. (kbuchegg)


Lesenswert?

Alexxx schrieb:
> @ kbuchegg:
> Setzt der Compiler wirklich eine Umwandlungsfunktion bei der Zuweisung
> "Longvar= Doublvar";
> ein??

Natürlich.
Warum denn nicht?
Alle Kommastellen werden abgeschnitten und was zahlenmässig übrig bleibt 
wird an den long zugewiesen. Was soll auch sonst passieren, was auch nur 
einigermassen sinnvoll wäre.

> @ klugscheisser:
> Die Frage ist, was wirklich beim Casten passiert.

Die eigentliche Frage ist, warum du nicht ein C-Buch liest

von klugscheisser (Gast)


Lesenswert?

wer lesen kann ist klar im vorteil ....
bzw. try and error hilft auch manchmal ....

von besserwisser (Gast)


Lesenswert?

klugscheisser schrieb:
> wer lesen kann ist klar im vorteil ....
> bzw. try and error hilft auch manchmal ....

Und wer ganz genau aufgepaßt hat, weiß, daß es eigentlich "trial and 
error" heißt.

von klugscheisser (Gast)


Lesenswert?

wo ist der bus?

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.