2010-01-29 12 views
6

Sto scrivendo un programma in C# che supponiamo di calcolare numeri molto piccoli. Tuttavia, tutti i miei calcoli ottengono il valore NaN perché sono troppo piccoli per il tipo di dati "doppio".C# - problema con numeri molto piccoli - cifre insufficienti in doppio tipo di dati

Esiste un'opzione in C# per gestire tali situazioni?

Grazie, Eden.

+0

Che cos'è un numero "molto piccolo"? Qualche esempio di cosa stai facendo? –

+0

Definire "numeri molto piccoli". E per favore fornisci un esempio di un calcolo che risulta in NaN. –

+0

Come si può ottenere NaN solo con valori molto piccoli (tipo eps)? Posso solo pensare a 1.0/x dove x è molto piccolo. Ma ciò risulterebbe in + infinito. Deve essere un NaN introdotto ad un certo punto. –

risposta

2

provare decimal

Edit: Inoltre, .NET 4 introduce BigInteger che potrebbe probabilmente essere utilizzato per rappresentare tutto ciò che i valori in virgola mobile \ data gamma si sta tentando di rappresentare.

+0

Essendo un grande "intero", non penso che sarà in grado di memorizzare valori in virgola mobile. Dovresti utilizzare un BigInteger come coefficiente e un secondo come esponente in una forma di notazione scientifica. –

+1

Oppure si utilizza l'aritmetica a virgola fissa con una precisione eccessiva di circa 500 cifre decimali. –

+0

SealedSun ha spiegato cosa non sono riuscito a spiegare quando ho suggerito BigInteger, grazie. – RedDeckWins

Problemi correlati