Ich führe einige Berechnungen durch und füge das Ergebnis in eine Datenbank ein.
Mein Problem ist, dass die Antworten, die ich bekomme, eher abgerundet als aufgerundet sind. Dies scheint nicht wichtig zu sein, aber im Laufe vieler Verkäufe beginnen die Cents sich zu summieren!
%Vor%Ich werde ehrlich sein, ich bin Müll mit Zahlen und die ganze Mathematik-Funktion war etwas, was ich im College vermeiden wollte. Kann mir jemand sagen, wie ich diese Zahlen sammeln kann, im Gegensatz zu down?
Dein Problem ist das
%Vor%Da 100 ein int ist, wird eine ganzzahlige Division ausgeführt, so dass 150/100 zu 1 wird. Sie können dies beheben, indem Sie sicherstellen, dass 100 eine Dezimalzahl ist, da Sie eine Dezimalzahl als Ergebnis am Ende haben möchten. Ändern Sie Ihren Code in.
%Vor% Wenn Sie jedoch immer Werte wie 1.1 bis 2 runden möchten, müssen Sie Math.Ceiling
verwenden, um dies zu erreichen. Wenn Sie aus irgendeinem Grund die Math
-Klasse vermeiden möchten (ich kann nicht sehen, warum Sie das tun wollen, können Sie 1 zum Ergebnis hinzufügen und es in ein int
umwandeln, um effektiv auf die nächste Ganzzahl zu runden.
.Nets Math.Round-Funktion verwendet etwas, das allgemein als Banker-Rundung bezeichnet wird, das durch Runden von .5 auf die nächste gerade ganze Zahl, dh 22,5 = 22 und 23,5 = 24, funktioniert. Dies ergibt eine gleichmäßigere Verteilung beim Runden.
Es ist auch erwähnenswert, dass der SQL Server keine Banker Rundung verwendet
Ihre eingehenden Prozentsätze addieren sich wahrscheinlich nicht zu 100%. Berechnen Sie einen Ihrer Brüche, indem Sie die Summe der anderen Brüche von der Summe subtrahieren.
%Vor% Leider sum
ist 99 und nicht 100.
Sie können v3
stattdessen wie folgt berechnen:
Oder verbessern Sie den Rundungsfehler in den eingehenden Prozentzahlen:
Tags und Links c#