toStringAsFixed method

String toStringAsFixed(
  1. int fractionDigits
)

Converts a num to a string representation with fractionDigits digits after the decimal point.

Implementation

String toStringAsFixed(int fractionDigits) {
  if (fractionDigits == 0) {
    return round().toBigInt().toString();
  } else {
    var mul = _i1;
    for (var i = 0; i < fractionDigits; i++) {
      mul *= _i10;
    }
    final mulRat = Rational(mul);
    final lessThanOne = abs() < _r1;
    final tmp = (lessThanOne ? (abs() + _r1) : abs()) * mulRat;
    final tmpRound = tmp.round();
    final intPart =
        (lessThanOne ? ((tmpRound ~/ mulRat) - _r1) : (tmpRound ~/ mulRat))
            .toBigInt();
    final decimalPart =
        tmpRound.toBigInt().toString().substring(intPart.toString().length);
    return '${isNegative ? '-' : ''}$intPart.$decimalPart';
  }
}