Das Ergebnis aller Divisionsgleichungen in der folgenden for-Schleife ist 0. Wie kann ich es erhalten, um mir eine Dezimalzahl zu geben, zum Beispiel:
%Vor%Code:
%Vor%Danke Jon und allen, das ist was ich tun wollte:
%Vor%Sie verwenden int / int, was alles in Integer-Arithmetik ausführt, selbst wenn Sie eine Dezimal / Doppel / Float-Variable zuweisen.
Erzwingen Sie, dass einer der Operanden den Typ hat, den Sie für die Arithmetik verwenden möchten.
%Vor%Ergebnisse:
%Vor%(usw.)
Beachten Sie, dass nicht den exakten Wert darstellt, der durch float oder double dargestellt wird - Sie können <0,01> nicht genau als float oder double darstellen . Die String-Formatierung rundet das Ergebnis effektiv ab. Sehen Sie meinen Artikel über .NET floating binary point für weitere Informationen sowie eine Klasse, mit der Sie die exakter Wert eines Double.
Ich habe mich nicht damit beschäftigt, 100L für result2
zu verwenden, weil das Ergebnis immer das gleiche wäre.
Da i eine ganze Zahl ist und 100 eine ganze Zahl ist, haben Sie eine ganzzahlige Division
Versuchen Sie (dezimal) i / 100.0 statt
Ganz gleich, wo Sie es speichern, eine Ganzzahl geteilt durch eine ganze Zahl ist immer eine Ganzzahl.
Dies ist eine Ganzzahl-Division, unabhängig vom Typ der Variablen, in der Sie speichern. so int / int = int