diff --git a/frameworks/i18n/src/number_format_impl.cpp b/frameworks/i18n/src/number_format_impl.cpp index cfaa927aff0a09916fb3bd92389158640001548b..0c13a0cca8c8879b28b08a47a7d2ff935a56e21c 100644 --- a/frameworks/i18n/src/number_format_impl.cpp +++ b/frameworks/i18n/src/number_format_impl.cpp @@ -129,13 +129,9 @@ std::string NumberFormatImpl::InnerFormat(double num, bool hasDec, bool isShowGr } char buff[NUMBER_MAX] = { 0 }; bool isPercentDefault = isPercent && (defaultData->style.minDecimalLength < 0); - int len; double adjustNum = (num < 0) ? (-1 * num) : num; - if (isPercentDefault) { - len = static_cast(sprintf_s(buff, NUMBER_MAX, "%.f", adjustNum)); - } else { - len = static_cast(sprintf_s(buff, NUMBER_MAX, defaultData->style.numFormat, adjustNum)); - } + int len = isPercentDefault ? static_cast(sprintf_s(buff, NUMBER_MAX, "%.f", adjustNum)) : + static_cast(sprintf_s(buff, NUMBER_MAX, defaultData->style.numFormat, adjustNum)); // convert decimal to char and format if (len < 0) { status = IERROR; @@ -143,8 +139,7 @@ std::string NumberFormatImpl::InnerFormat(double num, bool hasDec, bool isShowGr } char *decimalNum = strchr(buff, NumberData::NUMBER_DECIMAL); int decLen = (decimalNum == nullptr) ? 0 : strlen(decimalNum); - int adjustIntLength = len - decLen; - int lastLen = isShowGroup ? (len + CountGroupNum(adjustIntLength, defaultData->style.isTwoGroup)) : len; + int lastLen = isShowGroup ? (len + CountGroupNum(len - decLen, defaultData->style.isTwoGroup)) : len; char *result = reinterpret_cast(I18nMalloc(lastLen + 1)); if (result == nullptr) { status = IERROR;