toString method

  1. @override
String toString()
override

Convert to plain string representation.
Examples:

  • Decimal.parse("2").toString() -> "2"
  • Decimal.parse("0.2").toString() -> "0.2"
  • Decimal.parse("-0.2000").toString() -> "-0.2000"
  • Decimal.parse(".0").toString() -> "0.0"
  • Decimal.parse("-.25").toString() -> "-0.25"
  • Decimal.parse("1.").toString() -> "1"
  • Decimal.parse("-0.").toString() -> "0"
  • Decimal.parse("+.230").toString() -> "0.230"

Implementation

@override
String toString() {
  final isNegative = _value < BigInt.zero;
  final absValue = _value.abs();

  if (_scale == 0) {
    return isNegative ? '-$absValue' : absValue.toString();
  }

  final valueStr = absValue.toString();
  if (valueStr.length <= _scale) {
    final padded = valueStr.padLeft(_scale, '0');
    final integerPart = '0';
    final fractionalPart = padded;
    final result = '$integerPart.$fractionalPart';
    return isNegative ? '-$result' : result;
  } else {
    final integerPart = valueStr.substring(0, valueStr.length - _scale);
    final fractionalPart = valueStr.substring(valueStr.length - _scale);
    final result = '$integerPart.$fractionalPart';
    return isNegative ? '-$result' : result;
  }
}