from static method

Decimal? from(
  1. Object? o, {
  2. int? precision,
})
override

Implementation

static Decimal? from(Object? o, {int? precision}) {
  if (o == null) return null;
  if (o is Decimal) return o;

  if (o is int) return Decimal.fromInt(o, precision: precision ?? 0);
  if (o is double) return Decimal.fromDouble(o, precision: precision);

  if (o is BigInt) return Decimal.fromBigInt(o, precision: precision ?? 0);

  if (o is DynamicInt) {
    return Decimal.fromDynamicInt(o, precision: precision ?? 0);
  }

  if (o is List) {
    var n = o[0];
    var d = o.length > 1 ? o[1] : '0';
    return Decimal.fromParts(n, d, precision: precision);
  }

  if (o is Map) {
    var n = o['whole'] ?? o['integer'] ?? o['n'] ?? o['i'];
    var d = o['decimal'] ?? o['fraction'] ?? o['cents'] ?? o['d'] ?? o['f'];
    return Decimal.fromParts(n, d, precision: precision);
  }

  return Decimal.tryParse(o.toString(), precision: precision);
}