BigDecimal constructor
BigDecimal(
- String value
Creates a BigDecimal from a string representation.
value
the string representation of the decimal number
A wrapper class for precise decimal arithmetic.
This class provides arbitrary precision decimal arithmetic similar to Java's BigDecimal. It uses Dart's built-in support for arbitrary precision integers and implements decimal arithmetic on top of it.
Example usage:
BigDecimal a = BigDecimal("123.456");
BigDecimal b = BigDecimal("78.9");
BigDecimal sum = a + b;
print(sum.toString()); // "202.356"
print(sum.setScale(2)); // "202.36" (rounded)
Implementation
factory BigDecimal(String value) {
if (value.contains('.')) {
List<String> parts = value.split('.');
String integerPart = parts[0];
String fractionalPart = parts[1];
String unscaledStr = integerPart + fractionalPart;
BigInt unscaled = BigInt.parse(unscaledStr);
int scale = fractionalPart.length;
return BigDecimal._(unscaled, scale);
} else {
return BigDecimal._(BigInt.parse(value), 0);
}
}