@ Hummel danke für den Tipp
Ich habe jetzt noch ein paar Tests gemacht (mit var und float). Den Grund für die falschen Werte habe ich gefunden.
Der Wert für "given_side" wird nur bis 1448 (bei var sogar nur bis 800) korrekt berrechnet. Erhöhe ich auf 1449 erhalte ich anstatt 2.099.601 das Ergebniss -2.094.703
Gibt es einen anderen Datentyp den ich verwenden kann? Aber ich befürchte das ich mir einen anderen Rechenweg suchen muss.