wahrscheinlich ist meine Frage sehr einfach und dumm.
Ich möchte den Wert einer Division speichern, insbesondere 1 / x
, wobei x
ein ist
ganzzahliger Wert.
Ich versuche es, aber ich bekomme immer 0.000000 ...
Ich versuche einen Wert einzugeben, der in x festgelegt ist, zum Beispiel 1/17
, aber immer den gleichen Wert bekommen. Was ist falsch?
Sie machen Integer Division.
Versuchen Sie Folgendes und es wird wie erwartet funktionieren:
%Vor% Der Typ von 1
in dem obigen Ausdruck ist int
und der Typ von x
ist int. Wenn Sie int / int
ausführen, erhalten Sie einen int zurück. Sie benötigen mindestens einen der beteiligten Typen als Gleitkommazahl ( float
oder double
), damit die Gleitkommadivision ausgeführt werden kann.
Anders als in der Mathematik kann sich die Division in C ++ entweder auf eine abgeschnittene ganzzahlige Division beziehen (was Sie getan haben) oder auf eine Gleitkommadivision (was ich in meinem Beispiel getan habe). Sei vorsichtig damit!
In meinem Beispiel ist explizit double / int -> double
.
Tags und Links math c++ visual-studio floating-point double