mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 03:21:29 +00:00
Correctly round total weight displayed
The code was wrong (and in the case of metric display for weights >= 20kg, spectacularly wrong) in more or less all cases. Rounding. It's good for the sole. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
6d52d0f761
commit
86ec3d06a2
1 changed files with 8 additions and 5 deletions
|
@ -44,13 +44,16 @@ QString weight_string(int weight_in_grams)
|
||||||
if (get_units()->weight == units::KG) {
|
if (get_units()->weight == units::KG) {
|
||||||
int gr = weight_in_grams % 1000;
|
int gr = weight_in_grams % 1000;
|
||||||
int kg = weight_in_grams / 1000;
|
int kg = weight_in_grams / 1000;
|
||||||
if (kg >= 20.0) {
|
if (kg >= 20.0)
|
||||||
str = QString("0");
|
str = QString("%1").arg(kg + (gr >= 500 ? 1 : 0));
|
||||||
} else {
|
else
|
||||||
str = QString("%1.%2").arg(kg).arg((unsigned)(gr) / 100);
|
str = QString("%1.%2").arg(kg).arg((unsigned)(gr + 50) / 100);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
double lbs = grams_to_lbs(weight_in_grams);
|
double lbs = grams_to_lbs(weight_in_grams);
|
||||||
|
if (lbs >= 40.0)
|
||||||
|
lbs = rint(lbs + 0.5);
|
||||||
|
else
|
||||||
|
lbs = rint(lbs + 0.05);
|
||||||
str = QString("%1").arg(lbs, 0, 'f', lbs >= 40.0 ? 0 : 1);
|
str = QString("%1").arg(lbs, 0, 'f', lbs >= 40.0 ? 0 : 1);
|
||||||
}
|
}
|
||||||
return (str);
|
return (str);
|
||||||
|
|
Loading…
Reference in a new issue