void DigitList::round(int32_t maximumDigits) { int32_t savedDigits = fContext.digits; fContext.digits = maximumDigits; uprv_decNumberPlus(fDecNumber, fDecNumber, &fContext); fContext.digits = savedDigits; uprv_decNumberTrim(fDecNumber); fHaveDouble = FALSE; }
/** * Round the representation to the given number of digits. * @param maximumDigits The maximum number of digits to be shown. * Upon return, count will be less than or equal to maximumDigits. */ void DigitList::round(int32_t maximumDigits) { int32_t savedDigits = fContext.digits; fContext.digits = maximumDigits; uprv_decNumberPlus(fDecNumber, fDecNumber, &fContext); fContext.digits = savedDigits; uprv_decNumberTrim(fDecNumber); internalClear(); }
/** * Round the representation to the given number of digits. * @param maximumDigits The maximum number of digits to be shown. * Upon return, count will be less than or equal to maximumDigits. */ void DigitList::round(int32_t maximumDigits) { reduce(); if (maximumDigits >= fDecNumber->digits) { return; } int32_t savedDigits = fContext.digits; fContext.digits = maximumDigits; uprv_decNumberPlus(fDecNumber, fDecNumber, &fContext); fContext.digits = savedDigits; uprv_decNumberTrim(fDecNumber); reduce(); internalClear(); }