parseRatio static method
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;
}