Bonjour à tous,

Je suis sur un problème en ce moment que je n'arrive pas à identifier, je vous l'expose.

Je cherche à faire des arrondis monétaires sur des QLineEdit.
J'ai donc créé un slot qui arrondis les valeurs des que l'utilisateur les a entré.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
MaClass::MaClass()
{
     this->resize(740, 560);
 
     initWidget();
     initWidgetArchive();
 
     connect(somme_1, SIGNAL(editingFinished()), this, SLOT(initValues()));
     connect(somme_2, SIGNAL(editingFinished()), this, SLOT(initValues()));
     connect(somme_3, SIGNAL(editingFinished()), this, SLOT(initValues()));
     connect(somme_4, SIGNAL(editingFinished()), this, SLOT(initValues()));
}
 
void MaClass::initValues()
{
     QString s;
     totalMois_1->setText(s.setNum(somme_1->text().toDouble() 
                         + somme_2->text().toDouble() 
                         + somme_3->text().toDouble() 
                         + somme_4->text().toDouble()));
 
     arrondir();
}
 
void MaClass::arrondir() 
{          
     somme_1->setText(QString::number(somme_1->text().toDouble(), 'f', 2));
     somme_2->setText(QString::number(somme_2->text().toDouble(), 'f', 2));
     somme_3->setText(QString::number(somme_3->text().toDouble(), 'f', 2));
     somme_4->setText(QString::number(somme_4->text().toDouble(), 'f', 2));
     totalMois_1->setText(QString::number(totalMois_1->text().toDouble(), 'f', 2));
}
Résultat, ça se passe plutôt bien lorsque totalMois_1 (qui affiche le résultat) ne dépasse pas les 9999,99 euros, sinon l'arrondis est faussé, au lieu d'arrondir à la deuxième décimale, il arrondit à la première.

(par exemple, si somme_1 = 10000,07
totalMois_1 prendra la valeur 10000,10.
Et ce qui m'étonne c'est que somme_1 lui reste à sa valeur de 10000,07 alors qu'il subit le même arrondis que totalMois_1).

Voila, il doit surement y avoir un truc tout bête derrière tout ça, mais je vois pas

Merci d'avance pour votre aide.
En espérant avoir fait une description claire.