terbilang method
Implementation
String terbilang(double value) {
final number = value.toStringAsFixed(0);
final len = number.length;
String result = "";
for (var i = 0; i < len; i++) {
final length = len - i;
final delimiter = CheckUtils().pointer(length);
if (delimiter == 3) {
if (number[i].isNol) continue;
result += _ratusan(number[i], currIndex: i, len: len, number: number);
} else if (delimiter == 2) {
if (number[i].isSatu && !number[i + 1].isNol) {
result += belasan(number[i], currIndex: i, len: len, number: number);
} else {
if (number[i].isNol) continue;
result += _puluhan(number[i], number[i + 1]);
}
} else if (delimiter == 1) {
if (len > 1) {
try {
if (number[i - 1].isSatu) {
// continue;
} else {
result += _satuan(number[i]);
}
} catch (e) {
if (e is RangeError) {
if (length >= 7 && number[i].isSatu) {
result += _satuan(number[i], isJutaan: true);
} else {
// seribu
result += _satuan(number[i], unique: true);
}
}
}
}
if (len == 1) {
result += _satuan(number[i]);
}
}
if (length == 10) {
final tripleZero =
CheckUtils().checkZero(number: number, len: len, currIndex: i);
if (tripleZero == 3) continue;
result += _miliaran(number[i], currIndex: i, len: len, number: number);
} else if (length == 7) {
final tripleZero =
CheckUtils().checkZero(number: number, len: len, currIndex: i);
if (tripleZero == 3) continue;
result += _jutaan(number[i], currIndex: i, len: len, number: number);
} else if (length == 4) {
final tripleZero =
CheckUtils().checkZero(number: number, len: len, currIndex: i);
if (tripleZero == 3) continue;
result += _ribuan(number[i], currIndex: i, len: len, number: number);
}
}
result = result.replaceAll(" ", " ");
return result;
}