Pergunta

Eu estou fazendo alguns trabalhos como modelo população (por diversão, principalmente para brincar com os conceitos de capacidade de carga ea função Logística). O modelo trabalha com vários planetas (cerca de 100.000 deles, agora). Quando os alcances da população que levam capacidade em um planeta, os habitantes começam a ramificando para planetas próximos, e assim por diante.

Problema: 100.000 planetas pode abrigar um monte de gente. Mais do que um C # Decimal pode manipular. Desde que eu estou fazendo médias e outras coisas com esses números, eu preciso a capacidade de trabalhar com pontos flutuantes (ou eu tinha acabado de usar uma biblioteca BigInt).

Alguém sabe de uma classe BigFloatingPoint (ou qualquer outro) eu posso usar? Google está sendo muito inútil hoje. Eu provavelmente poderia escrever uma classe que iria trabalhar bem o suficiente, mas eu prefiro usar algo pré-existente, se tal coisa existe.

Foi útil?

Solução

Use unidades de megapeople para conseguir mais espaço.

Além disso, Decimal permite que você tem 100.000 planetas cada um com 100000000000000 vezes a população da Terra, se minha aritmética é certo. Tem certeza que não é o suficiente?

Outras dicas

Mesmo que cada planeta tem 100 bilhões de pessoas, o total ainda é apenas 1E16. Isto está bem dentro do limite de um bit inteiro de 64 assinado (2 ^ 63 vai para 9.223.372.036.854.775.807 que é quase 1E19 ...

Você poderia ir com um milhão de bilhões de pessoas por planeta, com 100000 planetas antes de você chegar perto do limite ...

Como a frações e médias e tal, você não pode converter para um float ou double ao fazer tais cálculos?

Você realmente precisa de 28 precisão dígitos? Você poderia usar o ponto flutuante para alguns cálculos?

(duplo para ser exato: ± 5.0E-324 a ± 1.7e308)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top