È consigliabile utilizzare IEEE754 in virgola mobile NaN (non-un-numero) per valori che non sono definiti per motivi non matematici?È consigliabile utilizzare il NaN in virgola mobile IEEE754 per i valori non impostati?
Nel nostro caso non sono ancora impostati perché i valori non sono stati ricevuti da qualche altro dispositivo. Il contesto è un sistema embedded che utilizza valori REAL32 IEC1131. Modifica: Il linguaggio di programmazione è C, quindi molto probabilmente utilizzere NAN e isnanf (x), che provengono da C99. Anche se potremmo aver bisogno di alcune contorsioni extra per ottenere questi nel nostro livello di compatibilità del sistema operativo.
L'impostazione predefinita nei linguaggi di programmazione sembra essere quella di inizializzare le variabili in virgola mobile con zero positivo, la cui rappresentazione interna è tutti zero. Questo non è utilizzabile per noi, perché 0 è nell'intervallo di valori validi.
Sembra una soluzione pulita per utilizzare NaN, ma forse è più fastidioso di quanto valga e dovremmo scegliere qualche altro valore?
Non so C, ma in .NET 1.1 prima che venissero fuori i tipi nullable, un sacco di persone usavano cose come il valore minimo (int.MinValue). Il problema con questo è che devi tenerlo in considerazione ovunque e assicurarti di non utilizzare mai MinValue. Forse qualcosa di simile esiste per C? – RichardOD
Ho fatto una domanda simile (ma non uguale), forse le risposte possono aiutarti anche tu. http://stackoverflow.com/questions/787828/nan-as-a-special-argument – quinmars