Fixed number truncation in deisplayed values
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
This commit is contained in:
@@ -43,19 +43,20 @@ namespace AzQtComponents
|
||||
{
|
||||
const QChar decimalPoint = locale.decimalPoint();
|
||||
const QChar zeroDigit = locale.zeroDigit();
|
||||
const int numToStringDecimals = numDecimals < 8 ? 8 : numDecimals;
|
||||
|
||||
// We want to truncate, not round. toString will round, so we add an extra decimal place to the formatting
|
||||
// so we can remove the last value
|
||||
QString retValue = locale.toString(value, 'f', (numDecimals > 0) ? numDecimals + 1 : 0);
|
||||
// We want to truncate, not round. toString will round, so we add extra decimal places to the formatting
|
||||
// so we can remove the last values
|
||||
QString retValue = locale.toString(value, 'f', (numDecimals > 0) ? numToStringDecimals : 0);
|
||||
|
||||
// Handle special cases when we have decimals in our value
|
||||
if (numDecimals > 0)
|
||||
{
|
||||
// Truncate the extra digit now, if it's still there
|
||||
int decimalPointIndex = retValue.lastIndexOf(decimalPoint);
|
||||
if ((decimalPointIndex > 0) && (retValue.size() - (decimalPointIndex + 1)) == (numDecimals + 1))
|
||||
if ((decimalPointIndex > 0) && (retValue.size() - (decimalPointIndex + 1)) == numToStringDecimals)
|
||||
{
|
||||
retValue.resize(retValue.size() - 1);
|
||||
retValue.resize(retValue.size() - (numToStringDecimals - numDecimals));
|
||||
}
|
||||
|
||||
// Remove trailing zeros, since the locale conversion won't do
|
||||
|
||||
Reference in New Issue
Block a user