Bonjour,

je suis en train de corriger des bug d'un logiciel. et j'ai actuellement un problème d'arrondi d'entier.

Pour être plus précis:
j'ai un qspinbox qui donne la valeur d'un tarif en décimal. l'utilisateur peut modifier dans l'interface ce tarif.

je récupère la valeur du spinbox et la convertis en entier (pour la stocker en base de données) Mais lors de cette conversion les valeurs changent parfois : Par exemple si je rentre 2,01 la conversion me donne 200 et enregistre 200 en base de données.

voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
t.tauxHoraire = (quint64)(ui->spTauxHoraire->value()*100.00);
j'ai inséré des QDebug dont voici un exemple:

Quand ça marche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
ui->spTauxHoraire->value()   : 4.01 
ui->spTauxHoraire->value()*100.00   : 401 
(quint64)(ui->spTauxHoraire->value()*100.00)    :401 
t.tauxHoraire   : 401
Quand ça ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
ui->spTauxHoraire->value()   : 2.01 
ui->spTauxHoraire->value()*100.00   : 201 
(quint64)(ui->spTauxHoraire->value()*100.00)  : 200 
t.tauxHoraire   : 200

j'ai essayé en enlevant le quint64 , en le remplaçant par un quint32 mais rien n'y fait et j'avouerais que je sèche un peu.

Avez vous une explication , ou des idées pour corriger ce problème s'il vous plait?

merci d'avance.