toIndianFormat method

String toIndianFormat()

Implementation

String toIndianFormat() {
  double number = double.tryParse(this) ?? 0;
  String formattedNumber = number.toStringAsFixed(2);

  List<String> parts = formattedNumber.split('.');
  String integerPart = parts[0];
  String decimalPart = parts[1];

  if (integerPart.length > 3) {
    String lastThree = integerPart.substring(integerPart.length - 3);
    String remaining = integerPart.substring(0, integerPart.length - 3);
    remaining = remaining.replaceAllMapped(RegExp(r'(\d)(?=(\d{2})+$)'), (
      Match match,
    ) {
      return '${match[1]},';
    });
    integerPart = '$remaining,$lastThree';
  }

  return int.parse(decimalPart) > 1
      ? '$integerPart.$decimalPart'
      : integerPart;
}