qualcuno si ricorda quali erano i motivi per cui una variabile double non poteva essere visualizzata (mostrando un "nan", not a number)?
grazie.
qualcuno si ricorda quali erano i motivi per cui una variabile double non poteva essere visualizzata (mostrando un "nan", not a number)?
grazie.
Drug misuse is not a disease, it is a decision, like the decision to step out in front of a moving car. [...] In this particular life-style the motto is "be happy now because tomorrow you are dying", but the dying begins almost at once, and the happiness is a memory.
A me è capitato che venga visualizzato "#INF" (infinito), "-#INF" e "#IND" (indeterminato).
Poi magari dipende dal sistema...
Una variabile che rappresenta un numero in virgola mobile viene stampato come un NAN quando la sua codifica binaria ESCE dallo standard IEEE per la rappresentazione dei numeri.
Lo standard IEEE specifica che un numero è in notazione standard quando è scritto nel modo seguente:
1 bit per il segno
5 bit (se non vado errato) per l'esponente
i rimanenti bit per la mantissa (nella codifica a 32 bit, rimangono, quindi 26 bit).
C'è una regola, però, che riguarda proprio i bit della mantissa: il primo numero della mantissa deve essere un 1. Se il primo bit della mantissa non è un 1 si entra nel campo dei numeri cosiddetti DENORMALIZZATI i quali non seguono le regole standard ma servono per rappresentare ulteriori numeri che con lo standard non possono essere rappresentati (per esempio, appunto, l'INFINITO). Se il numero denormalizzato, però, non rappresenta nessuno dei particolari valori di questo "formato" allora la codifica binaria NON RAPPRESENTA UN NUMERO e, il valore della relativa variabile, viene stampato come NAN.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
è possibile che dipenda dalla divisione 0/0 assegnata a un double? non mi capacito, le uniche operazioni che compie il mio programma sono moltiplicazioni, somme e divisioni con numeri "piccoli"
vedi allegato per l'errore
Drug misuse is not a disease, it is a decision, like the decision to step out in front of a moving car. [...] In this particular life-style the motto is "be happy now because tomorrow you are dying", but the dying begins almost at once, and the happiness is a memory.
Non lo so... ma dubito: fra i numeri denormalizzati dovrebbe essere previsto anche l'INDEFINITO. Non so che operazioni vengano svolte con quei valori, ma a questo punto credo che dipenda dal S.O.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
ho capito, grazie.
Drug misuse is not a disease, it is a decision, like the decision to step out in front of a moving car. [...] In this particular life-style the motto is "be happy now because tomorrow you are dying", but the dying begins almost at once, and the happiness is a memory.
Infatti a me che ho win, 0/0 mi da #IND