num2txt
Version:
Converts number to Vietnamese or English text with customized output.
68 lines (67 loc) • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tripletToVie = void 0;
const unitNumbers = [
'',
'một ',
'hai ',
'ba ',
'bốn ',
'năm ',
'sáu ',
'bảy ',
'tám ',
'chín ',
];
function tripletToVie(triplet, index) {
let currentTriplet = triplet;
let string = '';
let isLessThanTen = false;
let t = 100;
let n = 0;
let previousN = n;
if (currentTriplet < 10 && currentTriplet > 0) {
if (index > 0)
string += 'không trăm linh ';
string += unitNumbers[triplet];
isLessThanTen = true;
}
else if (currentTriplet < 100 && index > 0 && currentTriplet > 0) {
string += 'không trăm ';
}
while (currentTriplet >= 1 && isLessThanTen === false) {
previousN = n;
n = Math.floor(currentTriplet / t);
if (n === 5 && t === 1 && previousN > 0) {
string += 'lăm ';
break;
}
if (n === 1 && t === 1 && previousN > 1) {
string += 'mốt ';
break;
}
if (n === 4 && t === 1 && previousN >= 2) {
string += 'tư ';
break;
}
if (n > 1 || t !== 10) {
string += unitNumbers[n];
}
if (t === 100 && n !== 0) {
string += 'trăm ';
}
else if (t === 10 && n === 1) {
string += 'mười ';
}
else if (t === 10 && n >= 2) {
string += 'mươi ';
}
if (t === 10 && n === 0) {
string += 'linh ';
}
currentTriplet -= n * t;
t = Math.floor(t / 10);
}
return string;
}
exports.tripletToVie = tripletToVie;