fix: alot
This commit is contained in:
@@ -2,6 +2,19 @@ import 'package:intl/intl.dart';
|
||||
|
||||
final _euro = NumberFormat.currency(locale: 'nl_BE', symbol: '€');
|
||||
|
||||
final _euroInput = RegExp(r'^(\d{1,6})(?:[.,](\d{1,2}))?$');
|
||||
|
||||
extension Cents on int {
|
||||
String get asEuro => _euro.format(this / 100);
|
||||
}
|
||||
|
||||
/// Parses a typed price like `2,50` or `3` without going through doubles.
|
||||
/// Returns null for anything else, including more than two decimals.
|
||||
int? parseEuroToCents(String input) {
|
||||
final match = _euroInput.firstMatch(input.trim());
|
||||
if (match == null) return null;
|
||||
|
||||
final euros = int.parse(match.group(1)!);
|
||||
final cents = int.parse((match.group(2) ?? '0').padRight(2, '0'));
|
||||
return euros * 100 + cents;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user