double in unsigned long umwandeln

Gast #1956732
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)...
Gast #1956791
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.
#1956795
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.