UNPKG

polish-number-to-words

Version:

Spell numbers using words in Polish | Napisz liczbę słownie po polsku

34 lines (33 loc) 1.05 kB
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}`; } }