UNPKG

@siakhooi/number-to-chinese-words

Version:
41 lines (40 loc) 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FloatingNumberConvertor = void 0; const BasicNumberConvertor_1 = require("./BasicNumberConvertor"); class FloatingNumberConvertor { constructor(context) { this.context = context; this.basicNumber = new BasicNumberConvertor_1.BasicNumberConvertor(this.context); } convertFloat(number) { if (number - Math.floor(number) === 0) return ''; const start = Math.floor(number).toString().length + 1; const numberToConvert = number.toString(); const stop = numberToConvert.length; return this.context.options.useTraditionalFloatingUnit ? this.convertTraditionalFloatingNumber(start, stop, numberToConvert) : this.convertModernFloatingNumber(start, stop, numberToConvert); } convertTraditionalFloatingNumber(start, stop, numberToConvert) { let r = ''; for (let i = start; i < stop; i++) { const j = parseInt(numberToConvert.substring(i, i + 1)); if (j !== 0) r += this.basicNumber.convert_0_to_9(j, false, false, '') + this.context.characterSet.TRADITIONAL_FLOATING_UNIT[i - start]; } return r; } convertModernFloatingNumber(start, stop, numberToConvert) { let r = ''; for (let i = start; i < stop; i++) { const j = parseInt(numberToConvert.substring(i, i + 1)); r += this.basicNumber.convert_0_to_9(j, false, false, ''); } return r; } } exports.FloatingNumberConvertor = FloatingNumberConvertor;