parseRatio static method

double? parseRatio(
  1. Object? raw
)

Implementation

static double? parseRatio(Object? raw) {
  double? parsed;
  var fromPercentString = false;
  if (raw is num) {
    parsed = raw.toDouble();
  } else if (raw is String) {
    final trimmed = raw.trim();
    if (trimmed.endsWith('%')) {
      fromPercentString = true;
      final percent = double.tryParse(
        trimmed.substring(0, trimmed.length - 1).trim(),
      );
      parsed = percent == null ? null : percent / 100;
    } else {
      parsed = double.tryParse(trimmed);
    }
  }
  if (parsed == null || !parsed.isFinite) return null;
  if (!fromPercentString && parsed > 1 && parsed <= 100) return parsed / 100;
  return parsed;
}