polish-number-to-words
Version:
Spell numbers using words in Polish | Napisz liczbę słownie po polsku
34 lines (33 loc) • 1.05 kB
JavaScript
export function pluralizePl(num, singular, plural234, plural5, fractionForm) {
if (!Number.isInteger(num)) {
if (fractionForm == undefined) {
throw new Error('Fractional number provided but no fraction form specified.');
}
return fractionForm;
}
const absNum = Math.abs(num);
const lastDigit = absNum % 10;
const lastTwoDigits = absNum % 100;
if (absNum === 1) {
return singular;
}
else if (lastDigit >= 2 && lastDigit <= 4 && !(lastTwoDigits >= 12 && lastTwoDigits <= 14)) {
return plural234;
}
else {
return plural5;
}
}
export class PluralizerPL {
constructor(singular, plural234, plural5) {
this.singular = singular;
this.plural234 = plural234;
this.plural5 = plural5;
}
pluralize(num) {
return pluralizePl(num, this.singular, this.plural234, this.plural5);
}
toString() {
return `1: ${this.singular}, 2: ${this.plural234}, 5: ${this.plural5}`;
}
}