createAndStripZerosForScale static method
Implementation
static BigDecimal createAndStripZerosForScale(
BigInt intVal,
int scale,
int preferredScale,
) {
final ten = BigInt.from(10);
var intValMut = intVal;
var scaleMut = scale;
while (intValMut.compareTo(ten) >= 0 && scaleMut > preferredScale) {
if (intValMut.isOdd) {
break;
}
final remainder = intValMut.remainder(ten);
if (remainder.sign != 0) {
break;
}
intValMut = intValMut ~/ ten;
scaleMut = sumScale(scaleMut, -1);
}
return BigDecimal._(intVal: intValMut, scale: scaleMut);
}