Lines Matching defs:numberBitCount
164 void Helpers::GetScientificNotationForDouble(double number, uint32_t significandBitCount, int32_t &numberBitCount,
183 numberBitCount = exponent + 1;
195 int32_t Helpers::GetIntegerSignificandBitCount(double number, int32_t &numberBitCount, char *significandArray)
205 GetScientificNotationForDouble(number, bitPos, numberBitCount, significandArray,
221 GetScientificNotationForDouble(number, bitPos, numberBitCount, significandArray,
234 // In the ECMAScript, integerSignificand, integerSignificandBitCount and numberBitCount are defined as an integer:
237 // 3. numberBitCount is the number of bits in the Decimal representation of number.
239 // integerSciNotationArray = integerSignificand * (10 ** (numberBitCount - integerSignificandBitCount))
241 // integerSignificandBitCount: 3, numberBitCount: 26
243 int32_t numberBitCount = 0;
252 int32_t integerSignificandBitCount = GetIntegerSignificandBitCount(number, numberBitCount, significandArray);
256 if (numberBitCount > 0 && numberBitCount <= MAX_DECIMAL_EXPONENT) {
258 if (numberBitCount >= integerSignificandBitCount) {
259 // If integerSignificandBitCount ≤ numberBitCount ≤ 21, return the string represented by Decimal,
260 // integerSignificand followed by (numberBitCount - integerSignificandBitCount) digit zeros.
261 integerSignificand += std::string(numberBitCount - integerSignificandBitCount, '0');
263 // If 0 < numberBitCount < integerSignificandBitCount, return the string represented by Decimal,
264 // integerSignificand followed by point on the (numberBitCount + 1) digit.
265 integerSignificand.insert(numberBitCount, 1, '.');
267 } else if (numberBitCount <= 0 && numberBitCount > MIN_DECIMAL_EXPONENT) {
268 // If -6 < numberBitCount ≤ 0, return the string consisting of "0." and digit zeros represented by Decimal,
271 integerSignificand = std::string("0.") + std::string(-numberBitCount, '0') + integerSignificand;
277 // If numberBitCount ≤ -6 or numberBitCount > 21, return the string represented by Scientific notation,
278 // integerSignificand followed by "e", symbol and (numberBitCount - 1) digit zeros.
279 significand += 'e' + (numberBitCount >= 1 ? std::string("+") : "") + std::to_string(numberBitCount - 1);