num2txt
Version:
Converts number to Vietnamese or English text with customized output.
75 lines (74 loc) • 1.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tripletToEng = void 0;
const num2txt_1 = require("./../num2txt");
const unitNumbers = [
'',
'one ',
'two ',
'three ',
'four ',
'five ',
'six ',
'seven ',
'eight ',
'nine ',
'ten ',
'eleven ',
'twelve ',
'thirteen ',
'fourteen ',
'fifteen ',
'sixteen ',
'seventeen ',
'eighteen ',
'nineteen ',
];
const tens = [
'',
'',
'twenty ',
'thirty ',
'forty ',
'fifty ',
'sixty ',
'seventy ',
'eighty ',
'ninety ',
];
function tripletToEng(triplet, index, isMoreThanAThousand) {
let currentTriplet = triplet;
let string = '';
let isLessThanTwenty = false;
let t = 100;
let n = 0;
if (index >= num2txt_1.TRIPLET_MAX_LENGTH - 1 && isMoreThanAThousand && triplet > 0) {
string += 'and ';
}
if (currentTriplet < 20) {
string += unitNumbers[triplet];
isLessThanTwenty = true;
}
while (currentTriplet >= 1 && isLessThanTwenty === false) {
n = Math.floor(currentTriplet / t);
if (n > 0 && t === 100) {
string += unitNumbers[n] + 'hundred ';
}
if (t == 10) {
if (currentTriplet < 20) {
string += unitNumbers[currentTriplet];
isLessThanTwenty = true;
}
else {
string += tens[n];
}
}
if (t == 1) {
string += unitNumbers[n];
}
currentTriplet -= n * t;
t = Math.floor(t / 10);
}
return string;
}
exports.tripletToEng = tripletToEng;