withScale method
Implementation
BigDecimal withScale(
int newScale, {
RoundingMode roundingMode = RoundingMode.UNNECESSARY,
}) {
if (scale == newScale) {
return this;
} else if (intVal.sign == 0) {
return BigDecimal._(intVal: BigInt.zero, scale: newScale);
} else {
if (newScale > scale) {
final drop = sumScale(newScale, -scale);
final intResult = intVal * BigInt.from(10).pow(drop);
return BigDecimal._(intVal: intResult, scale: newScale);
} else {
final drop = sumScale(scale, -newScale);
return _divideAndRound(intVal, BigInt.from(10).pow(drop), newScale,
roundingMode, newScale);
}
}
}