Frage

Ich tue etwas Bevölkerung Modellierung (zum Spaß, vor allem mit den Konzepten spielen der Tragfähigkeit und der Logistik-Funktion). Das Modell arbeitet mit mehreren Planeten (etwa 100.000 von ihnen, gerade jetzt). Erreicht die Bevölkerungskapazität auf einem Planeten trägt, beginnen die Bewohner zu den nahe gelegenen Planeten abzweigt, und so weiter.

Problem: 100,000 Planeten eine Menge Leute aufnehmen kann. Mehr als ein C # Decimal verarbeiten kann. Da ich mittle und andere Sachen mit diesen Zahlen zu tun, ich brauche die Fähigkeit, mit schwimmenden Punkten zu arbeiten (oder ich würde nur eine BigInt Bibliothek verwenden).

Kennt jemand eine BigFloatingPoint Klasse (oder was auch immer) kann ich verwenden? Google wird heute sehr wenig hilfreich. Ich könnte wahrscheinlich eine Klasse schreiben, die gut genug funktionieren würde, aber ich würde lieber etwas bereits bestehende verwenden, wenn es so etwas gibt.

War es hilfreich?

Lösung

Verwenden Einheiten megapeople um mehr Spielraum zu erreichen.

Auch Dezimal können Sie 100.000 Planeten mit jeweils 100 Billionen mal die Bevölkerung der Erde haben, wenn meine Arithmetik ist richtig. Sind Sie sicher, dass das nicht genug?

Andere Tipps

Auch wenn jeder Planet 100 Milliarden Menschen hat, ist die Summe immer noch nur 1E16. Dies ist auch innerhalb der Grenzen eines signierten 64-Bit-Integer (2 ^ 63 geht an 9.223.372.036.854.775.807 die fast 1E19 ...

Sie mit einer Million Milliarden Menschen pro Planeten gehen könnten, mit 100000 Planeten, bevor Sie nahe an die Grenze bekamen ...

In Bezug auf Brüche und mittelt und so können Sie nicht auf ein Float oder double konvertieren, wenn Sie tun solchen Berechnungen?

Sie benötigen 28-stellige Präzision wirklich? Könnten Sie Punkt für einige Berechnungen verwenden Floating?

(Doppel um genau zu sein: ± 5.0e-324 1.7e308 bis ±)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top