Bonjour
Existe t il en C++ un moyen pour convertir un nombre de type "double" comme par exemple 0.666666 en une date? (plus pr�cis�ment en heure)
Par exemple, en vba on aurait:
Cdate(0.666666)= 16:00:00 ?
Merci
Bonjour
Existe t il en C++ un moyen pour convertir un nombre de type "double" comme par exemple 0.666666 en une date? (plus pr�cis�ment en heure)
Par exemple, en vba on aurait:
Cdate(0.666666)= 16:00:00 ?
Merci
Si j'ai bien compris, Cdate(0.0) = 00:00:00 et Cdate(1.0) = 24:00:00. Mais tu devras ensuite normaliser la valeur (24:00:00) en 00:00:00.
Sachant que 24 heures = 86 400 secondes, tu peux �crire dans un premier temps : Csecondes(x) = x * 86400. Avec le temps donn� en secondes :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 heures = TotalSecondes / 3600 TotalSecondes = TolatSecondes - (heures * 3600) minutes = TotalSecondes / 60 TotalSecondes = TolatSecondes - (minutes * 60) secondes = TotalSecondes
Merci, mais je me suis d�brouill� autrement, en utilisant les fonctions de <ctime>.
En revanche, j'ai une question plus basique.
Quand je lis un fichier qui contient des chiffres (de type double),
je vois que le compilateur lis par exemple: 191.44999999999999 au lieu de 191.45, qui est le nombre r�ellement inscrit dans le fichier.
Le probl�me c'est ce que je compare les nombres entre eux. Alors il suffit que le compilateur lise 191.450000000001 au lieu de 191.45 ou m�me 191.44999999999999 pour que cela provoque des bugs graves. j'ai l'impression de plus qu'il fait ce genre d'erreur de mani�re totalement al�atoire.
Y a t il un moyen pour �viter cela? Afin d'avoir tout le temps un nombre avec deux d�cimales, et pas plus?
merci
Il y a des conversions indiqu�es ici entre le format de date OLE et divers formats:
http://blogs.msdn.com/oldnewthing/ar.../05/54806.aspx
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager