Bonjour,
je souhaiterais pouvoir utiliser quelque chose d'équivalent à un
mais sur un long.Code:numeric_limits<double>::quiet_NaN()
Je voudrais pouvoir propager ce NaN dans des calculs. Y a-t-il une solution à mon problème ?
Merci d'avance.
Version imprimable
Bonjour,
je souhaiterais pouvoir utiliser quelque chose d'équivalent à un
mais sur un long.Code:numeric_limits<double>::quiet_NaN()
Je voudrais pouvoir propager ce NaN dans des calculs. Y a-t-il une solution à mon problème ?
Merci d'avance.
J'ai du mal à saisir la question.
Le long et le double n'ayant aucune garantie d'être de la même taille, je ne vois pas de solution portable.
Si toutefois sizeof(double) == sizeof(long) sur ta plateforme, alors
Stocke le double "nan" dans "v" sans en modifier sa valeur.Code:
1
2
3 double nan = numeric_limits<double>::quiet_NaN(); long v = *(long *)(&nan);
Ceci dit, si tu veux un nan en long, ça n'existe pas : tous les nombres sont valides en long.
Merci de ta réponse.
En effet ce que je cherche c'est une façon de reproduire le fonctionnement d'un NaN sur un long (et non le long et double n'ont pas la même taille). La seule solution que j'ai est d'utiliser une valeur aberrante qui se propage, mais pas comme un NaN.
J’espérais qu'il y avait une solution plus élégante.
OK merci !
Je vais regarder par là mais je pense rester sur la valeur aberrante du coup.