2010-01-29 8 views
6

J'écris un programme en C# qui suppose de calculer très petit nombre. Cependant, tous mes calculs obtiennent une valeur NaN car ils sont trop petits pour le type de données 'double'.C# - un problème très petit nombre - pas assez de chiffres dans le double type de données

Y at-il une option en C# pour faire face à de telles situations?

Merci, Eden.

+0

Qu'est-ce qu'un nombre « très petit »? Un exemple de ce que vous faites? –

+0

Définir "très petit nombre". Et s'il vous plaît donner un exemple d'un calcul qui aboutit à NaN. –

+0

Comment pouvez-vous obtenir NaN juste avec des valeurs très petites (semblables à EPS)? Je ne peux penser qu'à 1.0/x où x est très petit. Mais cela aboutirait à + l'infini. Il doit être un NaN introduit à un moment donné. –

Répondre

2

essayer decimal

Edit: , .NET 4 présente également BigInteger qui pourrait probablement être utilisé pour représenter ce que les valeurs à virgule flottante \ plage de données que vous essayez de représenter.

+0

Étant un grand "nombre entier" je ne pense pas qu'il sera capable de stocker des valeurs à virgule flottante. Vous auriez à utiliser un BigInteger comme un coefficient, et une seconde comme un exposant dans une forme de notation scientifique. –

+1

Ou vous utilisez l'arithmétique à virgule fixe avec une précision excessive de quelques 500 chiffres décimaux. –

+0

SealedSun a expliqué ce que j'ai échoué à expliquer quand j'ai suggéré BigInteger, merci. – RedDeckWins

Questions connexes