2010-01-29 21 views
6

Estoy escribiendo un programa en C# que supone calcular números muy pequeños. Sin embargo, todos mis cálculos obtienen el valor de NaN porque son demasiado pequeños para el tipo de datos 'doble'.C# - problema con números muy pequeños - no hay suficientes dígitos en el tipo de datos doble

¿Hay alguna opción en C# para manejar tales situaciones?

Gracias, Eden.

+0

¿Qué es un número "muy pequeño"? ¿Algún ejemplo de lo que estás haciendo? –

+0

Define "números muy pequeños". Y por favor da un ejemplo de un cálculo que resulte en NaN. –

+0

¿Cómo se puede obtener NaN solo con valores muy pequeños (como eps)? Solo puedo pensar en 1.0/x donde x es muy pequeño. Pero eso daría como resultado + infinito. Debe ser un NaN introducido en algún momento. –

Respuesta

2

tratar decimal

Editar: Además, .NET 4 introduce BigInteger que probablemente podría ser utilizado para representar cualquier valor de punto flotante \ rango de datos que está intentando representar.

+0

Al tratarse de un gran "entero", no creo que vaya a poder almacenar valores de coma flotante. Debería usar un BigInteger como coeficiente y un segundo como exponente en forma de notación científica. –

+1

O utiliza la aritmética de punto fijo con una precisión excesiva de unos 500 dígitos decimales. –

+0

SealedSun explicó lo que no pude explicar cuando sugerí BigInteger, gracias. – RedDeckWins

Cuestiones relacionadas