From a987c09d5d31fc3e3cf8ce26f69092532c8b9004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Sun, 27 May 2012 17:41:20 +0200 Subject: [PATCH] Replace toDouble by "replace(".", "")" to avoid bad double conversion --- src/view/AccountPanel.cpp | 4 ++-- src/view/grid/FloatDelegate.cpp | 2 +- src/view/grid/FormulaDelegate.cpp | 2 +- src/view/grid/GridAccount.cpp | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/view/AccountPanel.cpp b/src/view/AccountPanel.cpp index 41cdab9..5a734b2 100644 --- a/src/view/AccountPanel.cpp +++ b/src/view/AccountPanel.cpp @@ -772,12 +772,12 @@ void AccountPanel::OnOperationModified() void AccountPanel::OnAccountModified(int row, int column) { User* user = _kiss->GetUser(); - double amount; + int amount; int id = user->GetAccountId(_accounts[row]); if (_inModification || column != ACCOUNT_INIT) return; - amount = _accountsGrid->item(row, column)->text().toDouble(); + amount = _accountsGrid->item(row, column)->text().replace(".", "").toInt(); _kiss->SetAccountAmount(id, _curMonth, _curYear, amount*100); _accountsInitValues[id] = amount; diff --git a/src/view/grid/FloatDelegate.cpp b/src/view/grid/FloatDelegate.cpp index 344628a..cffdafe 100644 --- a/src/view/grid/FloatDelegate.cpp +++ b/src/view/grid/FloatDelegate.cpp @@ -32,7 +32,7 @@ void FloatDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, QLineEdit *line = qobject_cast(editor); QString s ; bool ok; - double value = line->text().toDouble(&ok); + double value = line->text().replace(".", "").toInt(&ok); if (ok) model->setData(index, qVariantFromValue(s.sprintf("%.2lf", value))); } diff --git a/src/view/grid/FormulaDelegate.cpp b/src/view/grid/FormulaDelegate.cpp index 0e41356..305673b 100644 --- a/src/view/grid/FormulaDelegate.cpp +++ b/src/view/grid/FormulaDelegate.cpp @@ -69,7 +69,7 @@ void FormulaDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, } else { - res = value.toDouble(&ok); + res = value.replace(".", "").toInt(&ok); if (ok) model->setData(index, qVariantFromValue(s.sprintf("%.2lf", res))); } diff --git a/src/view/grid/GridAccount.cpp b/src/view/grid/GridAccount.cpp index c2f07c0..5130335 100644 --- a/src/view/grid/GridAccount.cpp +++ b/src/view/grid/GridAccount.cpp @@ -961,7 +961,7 @@ void GridAccount::OnOperationModified(int row, int col) value = item(row, DEBIT)->text(); if (value.length()) { - new_op.amount = value.toDouble()*100; + new_op.amount = value.replace(".", "").toInt(); if (new_op.amount < 0) { new_op.amount *= -1.0; @@ -975,7 +975,7 @@ void GridAccount::OnOperationModified(int row, int col) value = item(row, CREDIT)->text(); if (value.length()) { - new_op.amount = value.toDouble()*100; + new_op.amount = value.replace(".", "").toInt(); if (new_op.amount < 0) { new_op.amount *= -1.0;