Domanda

Sto facendo alcuni modelli di popolazione (per divertimento, principalmente per giocare con i concetti di capacità di carico e funzione logistica). Il modello funziona con più pianeti (circa 100.000, in questo momento). Quando la popolazione raggiunge la capacità di carico su un pianeta, gli abitanti iniziano a diramarsi verso i pianeti vicini e così via.

Problema: oltre 100.000 pianeti possono ospitare MOLTE persone. Più di un C # Decimal può gestire. Dato che sto facendo medie e altre cose con questi numeri, ho bisogno della capacità di lavorare con punti mobili (o userei semplicemente una libreria BigInt).

Qualcuno sa di una classe BigFloatingPoint (o qualsiasi altra cosa) che posso usare? Oggi Google è molto inutile. Probabilmente potrei scrivere un corso che funzioni abbastanza bene, ma preferirei usare qualcosa di preesistente, se esiste una cosa del genere.

È stato utile?

Soluzione

Usa le unità di megape persone per ottenere più spazio per la testa.

Inoltre, Decimal ti consente di avere 100.000 pianeti ciascuno con 100000000000000 volte la popolazione della Terra, se la mia aritmetica è corretta. Sei sicuro che non sia abbastanza?

Altri suggerimenti

Anche se ogni pianeta ha 100 miliardi di persone, il totale è ancora solo 1E16. Questo è ampiamente entro il limite di un intero con segno a 64 bit (2 ^ 63 va a 9.223.372.036.854.775.807 che è quasi 1E19 ...

Potresti andare con un milione di miliardi di persone per pianeta, con 100000 pianeti prima di avvicinarti al limite ...

Per quanto riguarda le frazioni, le medie e simili, non puoi convertirti in un valore Float o doppio quando esegui tali calcoli?

Hai davvero bisogno di una precisione di 28 cifre? Potresti usare il virgola mobile per alcuni calcoli?

(doppio per essere esatti: & # 177; 5.0e & # 8722; 324 a & # 177; 1.7e308)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top