toString method
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;
}
}