Quotient ohne Nachkommastelle

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

Quotient ohne Nachkommastelle

Beitrag von lespaul »

Hallo,

ich habe double a = 19 und double b = 2

Code: Alles auswählen

double c = (double)(a/b);
Laut debugger hat c den Wert 9 ? Warum?

Ich danke allen Hinweisgebern. Mfg Lespaul
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Re: Quotient ohne Nachkommastelle

Beitrag von ScyllaIllciz »

Du hast den Rückgabewerte der Division gecastet aber die Division wurde mit Integer Werten/Variablen durchgeführt.

Also entweder eine der Variablen explizit casten, natürlich c++ Cast

Code: Alles auswählen

double c = static_cast<double>(a)/b;
oder einfacher implizit casten

Code: Alles auswählen

double c = 1.0*a/b;
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

Re: Quotient ohne Nachkommastelle

Beitrag von lespaul »

Danke für die Antwort.

Kannst du/jemand was zur Performance sagen? Wenn ich beispielsweise solch eine Rechnung in einer for-Schleife hätte. Welche Variante wäre dann vorzuziehen? static_cast oder implizit?

ich danke!
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Re: Quotient ohne Nachkommastelle

Beitrag von ScyllaIllciz »

Auf die Performance hat das keinen Einfluss. Ich nehme meistens Variante zwei, da sie kürzer ist.
Antworten