Wie teile ich int
durch 100?
zB:
%Vor% Warum ergibt dies y
ist 328
und nicht 328.94
?
Wenn eine ganze Zahl durch eine andere geteilt wird, wird die arithmetische Operation als Ganzzahlarithmetik durchgeführt.
Wenn Sie möchten, dass es als Float-, Doppel- oder Dezimalarithmetik ausgeführt wird, müssen Sie einen der Werte entsprechend umwandeln. Zum Beispiel:
%Vor% Beachten Sie, dass ich auch den Typ von y
geändert habe - es ist nicht sinnvoll, eine Dezimalarithmetik durchzuführen, sondern das Ergebnis in int
zu speichern. Das int
kann möglicherweise 328.94 nicht speichern.
Sie müssen nur eins der Werte zum richtigen Typ erzwingen, da dann das andere zum selben Typ hochgestuft wird - es gibt keinen Operator, der zum Teilen einer Dezimalzahl durch eine ganze Zahl definiert ist . Wenn Sie arithmetische Berechnungen mit mehreren Werten durchführen, sollten Sie alle nur für die Übersichtlichkeit auf den gewünschten Typ zwingen - es wäre bedauerlich, wenn eine Operation mit Ganzzahlarithmetik und eine andere Operation ausgeführt wird Doppelarithmetik, wenn Sie erwartet hätten, dass beide doppelt wären.
Wenn Sie Literale verwenden, können Sie einfach einen Suffix verwenden, um stattdessen den Typ anzugeben:
%Vor% Ob Sie decimal
, double
oder float
verwenden sollten, hängt davon ab, was Sie tun möchten. Lesen Sie meine Artikel zu Dezimal Fließkomma und binare Gleitkommazahl . Normalerweise ist double
geeignet, wenn Sie mit "natürlichen" Größen wie Höhe und Gewicht arbeiten, wobei jeder Wert eine Annäherung ist. decimal
eignet sich für künstliche Mengen wie Geld, die typischerweise genau als Dezimalwerte dargestellt werden.
328.94 ist keine ganze Zahl. Ganzzahl /
dividiert Runden; so funktioniert es.
Ich schlage vor, dass Sie in Dezimalzahlen umwandeln:
%Vor%oder mit Variablen:
%Vor%Weil ein int nur eine ganze Zahl ist. Versuchen Sie es stattdessen.
%Vor%seine Programmierung fundamental, dass int (ganzzahlige) Division unterscheidet sich von float (Gleitkomma) Dividieren.
Wenn Sie möchten .94 float oder double verwenden
%Vor%