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