Lines Matching refs:quantity
132 UBool ComplexUnitsConverter::greaterThanOrEqual(double quantity, double limit) const {
135 // First converter converts to the biggest quantity.
136 double newQuantity = unitsConverters_[0]->convert(quantity);
140 MaybeStackVector<Measure> ComplexUnitsConverter::convert(double quantity,
146 if (quantity < 0 && unitsConverters_.length() > 1) {
147 quantity *= -1;
163 quantity = (*unitsConverters_[i]).convert(quantity);
165 // If quantity is at the limits of double's precision from an
168 if (uprv_isNaN(quantity)) {
174 flooredQuantity = static_cast<int64_t>(floor(quantity * (1 + DBL_EPSILON)));
178 // Keep the residual of the quantity.
180 double remainder = quantity - flooredQuantity;
184 quantity = 0;
186 quantity = remainder;
191 applyRounder(intValues, quantity, rounder, status);
208 Formattable formattableQuantity(quantity * sign);
225 void ComplexUnitsConverter::applyRounder(MaybeStackArray<int64_t, 5> &intValues, double &quantity,
228 if (uprv_isInfinite(quantity) || uprv_isNaN(quantity)) {
235 // Nothing to do for the quantity.
240 decimalQuantity.setToDouble(quantity);
245 quantity = decimalQuantity.toDouble();
254 int64_t carry = static_cast<int64_t>(floor(unitsConverters_[lastIndex]->convertInverse(quantity) * (1 + DBL_EPSILON)));
258 quantity -= unitsConverters_[lastIndex]->convert(static_cast<double>(carry));