formatToIndianWords static method
String
formatToIndianWords(
- dynamic number, {
- String? currency,
})
Implementation
static String formatToIndianWords(dynamic number, {String? currency}) {
if (number is! BigInt && number is! int) {
throw ArgumentError("Input must be an int or BigInt.");
}
if (number == 0) return "Zero";
List<String> parts = [];
int groupIndex = 0;
BigInt num = BigInt.parse(number.toString());
while (num > BigInt.zero) {
BigInt part = num % BigInt.from(1000);
if (part != BigInt.zero) {
String partWord = _convertThreeDigits(part.toInt());
if (_indianUnits[groupIndex].isNotEmpty) {
partWord += " ${_indianUnits[groupIndex]}";
}
parts.insert(0, partWord);
}
groupIndex++;
num ~/= BigInt.from(1000);
}
String result = parts.join(" ").trim();
if (currency != null && currencySigns.containsKey(currency)) {
result = "${currencySigns[currency]} $result";
}
return result;
}