Files
syncrow-app/lib/utils/helpers/parser_helper.dart
Mohammad Salameh 5a7787b42d Added Error handling
2024-03-10 08:56:06 +03:00

71 lines
1.9 KiB
Dart

import 'package:intl/intl.dart';
class ParserHelper {
//todo : convert to extension
static int parseInt(String value) {
int result;
try {
result = int.parse(value);
} catch (err) {
result = 0;
}
return result;
}
static double parseDouble(String value) {
double result;
try {
result = double.parse(value);
} catch (err) {
result = 0.0;
}
return result;
}
static String roundNumber(dynamic value) {
String valueToString = value.toString();
num number = num.tryParse(valueToString.isNotEmpty
? valueToString.contains(',')
? valueToString.replaceAll(',', '')
: valueToString
: '0') ??
0;
int roundedNum = number.round();
return NumberFormat("#,###,###", 'en_US').format(roundedNum);
}
static String roundArea(dynamic value) {
if (value.accessTokenIsNotEmpty && value.contains(' ')) {
List<String> split = value!.split(' ');
String formattedArea = ParserHelper.roundNumber(split[0]);
return '$formattedArea ${split[1]}';
} else {
String valueToString = value.toString();
num number = num.tryParse(valueToString.isNotEmpty
? valueToString.contains(',')
? valueToString.replaceAll(',', '')
: valueToString
: '0') ??
0;
int roundedNum = number.round();
return NumberFormat("#,###,###", 'en_US').format(roundedNum);
}
}
static String oneDecimal(num value) {
String numWithOneDecimal = value.toStringAsFixed(1);
if (numWithOneDecimal.contains('.')) {
List<String> numList = [];
numList = numWithOneDecimal.split('.');
// Example: if the number is 12.0 change it to 12
if (numList[1] == '0') {
numWithOneDecimal = numList[0];
}
}
return numWithOneDecimal;
}
}