Bonjour !
J'ai une donnée qui arrive en format string sous la forme d'un temps : HH:mm:ss
Vu que je ne peux pas sum sur un temps dans le logiciel que j'utilise, j'improvise en essayant de sommer l'équivalent en minute
C'est à dire que si le temps vaut 01:00:00, l'équivalent sera 60 (minutes)
Si c'est 00:15:00, l'équivalent sera 15
00:00:54, l'équivalent sera 54/60
00:02:15, l'équivalent sera 2 + 15/60
Le problème auquel je suis confronté c'est que dans ma tMap, j'ai un bout de "code" vraiment moche qui ressemble à ceci :
où row11.Duree est mon champ en question.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Integer.parseInt((row11.Duree).substring(0,2)) * 60 + Integer.parseInt((row11.Duree).substring(3,5)) + (double)(int)(Double.parseDouble((row11.Duree).substring(6, 8)) / 60 * 100)/100
Le problème est donc double :
Les résultats laissent parfois passer des erreurs tel qu'une réponse comme : 54,8400000005 alors que la réponse devrait être 54,84. Il reste plus de 2 décimales, ce qui ne devrait pas être le cas. Je connais les soucis qui existe avec le stockage de nombre réel en bits, je suppose donc que cela provient de là mais je ne sais pas comment le résoudre dans ce cas-ci...
En plus, je perd une petite quantité de données du au arrondit tel que réalisé ainsi
Ma question est donc comment remédier à ceci ? Avez-vous un code qui serait plus adapté (surement je n'en doute pas) ?
Wazzouille :-)
Partager