mand-mobile
Version:
A Vue.js 2.0 Mobile UI Toolkit
130 lines (110 loc) • 3.17 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['exports'], factory);
} else if (typeof exports !== "undefined") {
factory(exports);
} else {
var mod = {
exports: {}
};
factory(mod.exports);
global.numberCapital = mod.exports;
}
})(this, function (exports) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (number) {
var negative = void 0;
// Integral part
var integerNum = void 0;
// Decimal part
var decimalNum = void 0;
// Capital number
var capitalStr = '';
var parts = void 0;
/* istanbul ignore if */
if (number === '') {
return '';
}
number = parseFloat(number);
if (number < 0) {
negative = true;
number = Math.abs(number);
}
/* istanbul ignore if */
if (number >= maxNum) {
return '';
}
/* istanbul ignore if */
if (number === 0) {
capitalStr = cnNums[0] + cnIntLast + cnInteger;
return capitalStr;
}
// Convert to String
number += '';
if (number.indexOf('.') === -1) {
integerNum = number;
decimalNum = '';
} else {
parts = number.split('.');
integerNum = parts[0];
decimalNum = parts[1].substr(0, 4);
}
// Convert integer part
if (parseInt(integerNum, 10) > 0) {
var zeroCount = 0;
for (var i = 0, IntLen = integerNum.length; i < IntLen; i++) {
var n = integerNum.substr(i, 1);
var p = IntLen - i - 1;
var q = p / 4;
var m = p % 4;
if (n === '0') {
zeroCount++;
} else {
if (zeroCount > 0) {
capitalStr += cnNums[0];
}
zeroCount = 0;
capitalStr += cnNums[parseInt(n)] + cnIntRadice[m];
}
if (m === 0 && zeroCount < 4) {
capitalStr += cnIntUnits[q];
}
}
capitalStr += cnIntLast;
}
// Convert decimal part
if (decimalNum !== '') {
for (var _i = 0, decLen = decimalNum.length; _i < decLen; _i++) {
var _n = decimalNum.substr(_i, 1);
if (_n !== '0') {
capitalStr += cnNums[Number(_n)] + cnDecUnits[_i];
}
}
}
/* istanbul ignore if */
if (capitalStr === '') {
capitalStr += cnNums[0] + cnIntLast + cnInteger;
} else if (decimalNum === '') {
capitalStr += cnInteger;
}
if (negative) {
capitalStr = '' + cnNegative + capitalStr;
}
return capitalStr;
};
var cnNums = ['\u96F6', '\u58F9', '\u8D30', '\u53C1', '\u8086', '\u4F0D', '\u9646', '\u67D2', '\u634C', '\u7396'];
// 拾 \u62fe 佰 \u4f70 仟 \u4edf
var cnIntRadice = ['', '\u62FE', '\u4F70', '\u4EDF'];
// 万 \u4e07 亿 \u4ebf 兆 \u5146
var cnIntUnits = ['', '\u4E07', '\u4EBF', '兆'];
// 角 \u89d2 分 \u5206 厘 \u5398 毫 \u6beb
var cnDecUnits = ['\u89D2', '\u5206', '\u5398', '\u6BEB'];
var cnInteger = '\u6574'; // 整 \u6574
var cnIntLast = '\u5143'; // 元 \u5143
var cnNegative = '\u8D1F'; // 负
// Maximum number
var maxNum = 999999999999999.9999;
});