digitsAfterDecimal static method

int digitsAfterDecimal(
  1. Measurement<Measurement> measurement
)

Calculates the number of significant digits after the decimal point.

This only considers digits that fall within the measurement's precision, e.g.:

digitsAfterDecimal(meters(1.2345));                           // 4
digitsAfterDecimal(meters(1.2345, precision: Precision(3)));  // 2

Implementation

static int digitsAfterDecimal(final Measurement measurement) {
  if (measurement.isInfinite || measurement.isNaN) {
    return 0;
  }
  final string = measurement._preciseSI().toStringAsExponential();
  final locationOfE = string.indexOf('e');
  return math.max(
      measurement.precision -
          int.parse(string.substring(locationOfE + 1)) -
          1,
      0);
}