|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- const { padNumber, formatNumber } = require('../core/util');
-
- module.exports = {
-
- floor: function(num) {
- return Math.floor(Number(num));
- },
-
- ceil: function(num) {
- return Math.ceil(Number(num));
- },
-
- round: function(num) {
- return Math.round(Number(num));
- },
-
- abs: function(num) {
- return Math.abs(Number(num));
- },
-
- pow: function(num, exp) {
- return Math.pow(num, exp);
- },
-
- padNumber: function(num, digids) {
- num = Number(num);
-
- if (isNaN(num) || !isFinite(num)) return 'NaN';
-
- return padNumber(num, digids);
- },
-
- formatNumber: function(num, decimals, decimalSeparator, groupingSeparator) {
- return formatNumber(num, decimals, decimalSeparator, groupingSeparator);
- },
-
- hex: function(num) {
- return parseInt(String(num), 16) || NaN;
- },
-
- currency: function(num, unit, decimalSeparator, groupingSeparator, decimals) {
- unit = typeof unit == 'string' ? unit : '$';
- decimalSeparator = typeof decimalSeparator == 'string' ? decimalSeparator : '.';
- groupingSeparator = typeof groupingSeparator == 'string' ? groupingSeparator : ',';
- decimals = typeof decimals == 'number' ? Math.abs(decimals) : 2;
-
- let formatted = formatNumber(num, decimals, decimalSeparator, groupingSeparator);
- let minus = formatted[0] == '-';
-
- return (minus ? '-' : '') + unit + formatted.replace(/^\-/, '');
- },
-
- formatSize: function(num, decimals, binary) {
- num = Number(num);
-
- if (isNaN(num) || !isFinite(num)) return 'NaN';
-
- decimals = typeof decimals == 'number' ? Math.abs(decimals) : 2;
-
- let base = binary ? 1024 : 1000;
- let suffix = binary ? ['KiB', 'MiB', 'GiB', 'TiB'] : ['kB', 'MB', 'GB', 'TB'];
-
- for (let i = 3; i >= 0; i--) {
- let n = Math.pow(base, i + 1);
- if (num >= n) {
- return formatNumber(num / n, decimals) + suffix[i];
- }
- }
-
- return num + 'B';
- },
-
- };
|