# 数字相关
# API
名称 | 描述 |
---|---|
add | 加 |
subtract | 减 |
multiply | 乘 |
devide | 除 |
fmtNum | 数字格式化 |
isInteger | 是否为整数 |
isNum | 是否为数字 |
round | 四舍五入到指定位数 |
sumDecimalNumber | 两个超小数(均是字符串)相加 |
sumBigNumber | 两个超大整数(均是字符串)相加 |
# add
两数或多数相加
语法:
/**
* 相加
* @param {Number} a :加数
* @param {Number} b :被加数
* @param {Number} digit :结果保留位数
*/
rutils.add(a, b, digit)
示例:
// 两数相加
rutils.add(1.325, 1.235, 2)
// => 2.56
// 多数相加,第一个参数为数字数组,第二个则为保留位数
rutils.add([1, 2, 3, 4, 5, 6, 7.124], 2)
// => 28.12
# subtract
两数或多数相减
语法:
/**
* 两数相减
* @param {Number} a :减数
* @param {Number} b :被减数
* @param {Number} digit :结果保留位数
*/
rutils.subtract(a, b, digit)
示例:
// 1.两数相减
rutils.subtract(1.325, 1.235, 2)
// => 0.09
// 2.多数相减,第一个参数为数字list,第二个则为保留位数
rutils.subtract([30, 2, 3, 4, 5, 6, 7.124], 2)
// => 2.88
# multiply
两数或多数相乘的值
语法:
/**
* 两数相乘
* @param { Number } a :乘数
* @param { Number } b :被乘数
* @param { Number } digit :结果保留位数
*/
rutils.multiply(a, b, digit)
示例:
// 1.两数相乘
rutils.multiply(1.325, 1.235, 2)
// => 1.64
// 2.多数相乘,第一个参数为数字list,第二个则为保留位数
rutils.multiply([1, 2, 3, 4, 5, 6, 7.124], 2)
// => 5129.28
rutils.multiply(1.1, 2.2) // 2.42
rutils.multiply(1.13, 0.8, 0) // 1
rutils.multiply(1.13, 0.8, 1) // "0.9"
rutils.multiply(1.13, 0.8, 2) // "0.90"
rutils.multiply(1.13, 0.8, 3) // "0.904"
rutils.multiply(1.13, 0.8, 4) // "0.9040"
# devide
两数或多数相除的值
语法:
/**
* 两数相除
* @param {Number} a :除数
* @param {Number} b :被除数
* @param {Number} digit :结果保留位数
*/
rutils.devide(a, b, digit)
示例:
// 1.两数相除
rutils.devide(1.325, 1.235, 2)
// => 1.07
// 2.多数相除,第一个参数为数字list,第二个则为保留位数
rutils.devide([500, 1.2, 3, 4, 5, 6, 7.124], 2)
// => 0.16
rutils.devide() // ""
rutils.devide(1) // ""
rutils.devide(1, 3) // 0.3333333333333333
rutils.devide(1, 3, 1) // "0.3"
rutils.devide(1, 3, 2) // "0.33"
rutils.devide() // ""
rutils.devide([]) // ""
rutils.devide([1, 3]) // 0.3333333333333333
rutils.devide([1, 3, 3]) // 0.1111111111111111
rutils.devide([1, 9]) // 0.1111111111111111
rutils.devide([1, 9], 0) // 0
rutils.devide([1, 9], 1) // "0.1"
rutils.devide([1, 9], 2) // "0.11"
rutils.devide([1, 9], 3) // "0.111"
# fmtNum
格式化数字
语法:
/**
* 数字格式化
* @param { String | Number } val : 有效数数字
* @param { Boolean } isThousands : 整数部分是否进行千分位,默认值 false
* @param { Number } digit : 小数部分四舍五入保留到的位数
* @param { Boolean } isCalc : 计算结果是否 Number 处理
*/
rutils.fmtNum(val, isThousands, len, isCalc)
示例:
rutils.fmtNum() // ""
rutils.fmtNum(11111111111.333555) // "11111111111.333555"
rutils.fmtNum(11111111111.333555, false, 3) // "11111111111.334"
rutils.fmtNum(11111111111.333555, true) // "11,111,111,111.333555"
rutils.fmtNum(11111111111.333555, true, 3) // "11,111,111,111.334"
rutils.fmtNum(1.45, false, 3, true) // 1.45
# round
四舍五入
语法:
/**
* 四舍五入到指定位数
* @param { Number } n:小数
* @param { Number } decimals :四舍五入到指定位数
*/
rutils.round(n, decimals)
示例:
rutils.round(1.23456, 1) // 1.2
rutils.round(1.23456, 2) // 1.23
rutils.round(1.23456, 3) // 1.235
rutils.round(1.23456, 4) // 1.2346
rutils.round(1.23456, 5) // 1.23456
# isNum
是否有效数字:排除 NaN
、 Infinity
,数字字符串或数字,都为有效数字
/**
* 判断是否是有效数字 不包含NaN
* 是否有效数字:排除 NaN Infinity,数字字符串 或是 数字,都为有效数字
* @param {any} val: 判断的值
*/
rutils.isNum(val)
示例:
let arr = [{}, [], undefined, null, 123, '123', Symbol('111'), function() {}, new Date(), false, /\d+/gi, NaN, Infinity]
arr.forEach(item => {
console.log(rutils.isNum(item))
// true: (123, '123')
// false: (other)
})
# isInteger
是否为整数, 必须是数字类型
语法:
rutils.isInteger(val)
示例:
rutils.isInteger(3)
// => true
rutils.isInteger(3.11)
// => false
rutils.isInteger('3')
// => false
rutils.isInteger(NaN)
// => false
# sumDecimalNumber
两个超小数(均是字符串)相加
语法:
rutils.sumDecimalNumber(a,b)
参数:
a:
加数 ,字符串类型,超小数
b:
被加数 ,字符串类型,超小数
示例:
rutils.sumDecimalNumber('0.0000000000001','0.00000000000007')// '0.00000000000017'
# sumBigNumber
两个超小数(均是字符串)相加
语法:
rutils.sumBigNumber(a,b)
参数:
a:
加数 ,字符串类型,整数
b:
被加数 ,字符串类型,整数
示例:
rutils.sumBigNumber('9999999999999999','9999999999999999999')// '10009999999999999998' 与BigInt 运算一致
//BigInt运算: 9999999999999999n+9999999999999999999n // 10009999999999999998n