Was ist der beste Weg, um dieses Problem im Code zu lösen?Rundungsprobleme bei der Zuweisung von Dollarbeträgen für mehrere Personen
Das Problem ist, dass ich 2-Dollar-Beträge (bekannt als ein Topf) haben, die 3 Personen zugeordnet werden müssen. Jede Person erhält einen bestimmten Betrag, der aus beiden Töpfen kommt und die Raten müssen ungefähr gleich sein. Ich komme immer wieder zu Rundungsproblemen, bei denen meine Zuweisungen entweder zu viel oder zu wenig ergeben.
Hier ist ein konkretes Beispiel:
Pot # 1 987,654.32
Pot # 2 123,456.78
Person # 1 bekommt Betrag Allocation: 345,678.89
Person # 2 bekommt Betrag Allocation: 460,599.73
Person # 3 bekommt Zuteilungsbetrag: 304,832.48
Meine Logik ist wie folgt (Code ist in C#):
Die Ergebnisse ich sind wie folgt:
Pot # 1, Person # 1 = 307,270.13
Pot # 1, Person # 2 = 409,421.99
Pot # 1, Person # 3 = 270,962.21
Pot # 1 Total = 987,654.33 (1 Cent off)
Pot # 2, Person # 1 = 38,408.76
Pot # 2, Person # 2 = 51,177.74
Pot # 2, Person # 3 = 33,870.27
Pot # 2 Insgesamt = 123.456,77 (1 Cent aus)
Die Pot-Summen sollten mit den ursprünglichen Summen übereinstimmen.
Ich denke, dass ich etwas vermisse oder dass es einen zusätzlichen Schritt geben muss, den ich nehmen muss. Ich denke, ich bin auf dem richtigen Weg.
Jede Hilfe würde sehr geschätzt werden.
Möglicherweise möchten Sie diesen Artikel, um zu sehen, dass ich auf geschrieben, wie dies in SQL behandeln: [Financial Abrunden von Verrechnungen] (http://www.sqlservercentral.com/articles/Financial+Rounding/88067 /) –