diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Utilities/Conversions.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Utilities/Conversions.cpp index 4764b9f911..591b4a3701 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Utilities/Conversions.cpp +++ b/Code/Framework/AzQtComponents/AzQtComponents/Utilities/Conversions.cpp @@ -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