Number
一、创建数字
JavaScript 数字可以使用也可以不使用小数点来书写:
var x = 3.14; // 使用小数点
var y = 34; // 不使用小数点
极大或极小的数字可通过科学(指数)计数法来写:
var z = 123e5; // 12300000
var w = 123e-5; // 0.00123
无穷大(Infinity)
var x = 2/0; // Infinity
var y = -2/0; // -Infinity
二、常用属性
属性 | 描述 |
---|---|
Number.MAX_VALUE | 返回 Javascript 的最大数:1.7976931348623157e+308 。注意:大于MAX_VALUE的数表示无穷大(Infinity)。 |
Number.MIN_VALUE | 返回 Javascript 的最小数:5e-324 。注意: MIN_VALUE 是 JavaScript 最接近0的数,不是负值。 |
Number.NEGATIVE_INFINITY | 返回负无穷大:-Infinity |
Number.POSITIVE_INFINITY | 返回正无穷大:Infinity |
prototype | 允许您向对象添加属性和方法 |
constructor | 对创建该对象的函数的引用 |
三、常用方法
方法 | 描述 |
---|---|
toFixed(x) | 把数字转换为字符串,结果为小数点后有指定位数的数字。 |
oExponential() | 把对象的值转换为指数计数法。 |
toPrecision() | 把数字格式化为指定的长度。 |
四、Math 对象常用方法
方法 | 描述 |
---|---|
ceil(x) | 上舍入 |
floor(x) | 下舍入 |
round(x) | 四舍五入 |
random() | 返回 0 ~ 1 之间的随机数 |
pow(x,y) | 返回 x 的 y 次幂 |
max(x,y,z,…,n) | 返回 x,y,z,…,n 中的最高值 |
min(x,y,z,…,n) | 返回 x,y,z,…,n中的最低值 |
四、number 数字方法封装
u.number = {};
转换成int类型
/**
*@description 转换成int类型
* @param {String Number} input 输入的数
* @param {Number} defaultValue 转换失败时的默认值
* @return {int}
*/
u.number.parseInt = function(input, defaultValue) {
var value = parseInt(input)
if (isNaN(value) || Infinity === value) {
defaultValue = defaultValue || 0
return defaultValue
}
return value
}
转换成float类型
/**
* @description 转换成float类型
* @param {String Number} input 输入的数
* @param {Number} defaultValue 转换失败时的默认值
* @return {float}
*/
u.number.parseFloat = function(input, defaultValue) {
var value = parseFloat(input)
if (isNaN(value) || Infinity === value) {
defaultValue = defaultValue || 0
return defaultValue
}
return value
}
保留几位小数(四舍五入法)
/**
* @description 保留几位小数(四舍五入法)
* @param {String Number} input 输入的数
* @param {String Number} digits 小数位数,默认 2
* @return {String}
*/
u.number.toFixed = function(input, digits) {
digits = digits || 2
input = u.number.parseFloat(input, 0)
if (input === 0) return 0
return input.toFixed(digits)
}
保留几位小数(进一法)
/**
* @description 保留几位小数(进一法)
* @param {String Number} input 输入的数
* @param {String Number} digits 小数位数,默认 2
* @return {String}
*/
u.number.ceil = function(input, digits) {
digits = digits || 2
var num = Math.ceil(input * Math.pow(10, digits)) / Math.pow(10, digits)
return u.number.toFixed(num, digits)
}
保留几位小数(舍一法)
/**
*@description 保留几位小数(舍一法)
* @param {String Number} input 输入的数
* @param {String Number} digits 小数位数,默认 2
* @return {String}
*/
u.number.floor = function(input, digits) {
digits = digits || 2
var num = Math.floor(input * Math.pow(10, digits)) / Math.pow(10, digits)
return u.number.toFixed(num, digits)
}
获取两个数之间的随机数
/**
* @description 获取两个数之间的随机数
* @param {Number} min
* @param {Number} max
* @return {Number}
*/
u.number.random = function(min, max) {
var random = 0
random = min + Math.random() * (max - min)
return Math.round(random)
}
多个数相乘
/**
*@description 多个数相乘
* @param {Number String} args 乘数
* @return {Number} 积
*/
u.number.mul = function(args) {
var m = 0
var ret = 1
for (var i = 0; i < arguments.length; i++) {
arguments[i] = arguments[i].toString()
try {
m += arguments[i].split('.')[1].length
}
catch (e) {
m += 0
}
ret = arguments[i].replace('.', '') * ret
}
ret = ret / Math.pow(10, m)
return ret
}
多个数相加
/**
*@description 多个数相加
* @param {Number String} args 加数
* @return {Number} 和
*/
u.number.add = function(args) {
var m = 0
var ret = 0
for (var i = 0; i < arguments.length; i++) {
arguments[i] = arguments[i].toString()
try {
m += arguments[i].split('.')[1].length
}
catch (e) {
m += 0
}
}
for (var j = 0; j < arguments.length; j++) {
ret = arguments[j] * Math.pow(10, m) + ret
}
ret = ret / Math.pow(10, m)
return ret
}
转化成货币格式(千分位):多用于过滤函数
/**
* @description 转化成货币格式(千分位)
* @param {Number String} num 源数据
* @param {String Number} digits 小数位数,默认不处理
* @return {String}
*/
u.number.toCurrency = function(input, digits) {
input = input + ''
if (digits) input = u.number.toFixed(input, digits)
if (input.indexOf('.') === -1) input += '.'
return input.replace(/(\d)(?=(\d{3})+\.)/g, function($1) {
return $1 + ','
}).replace(/\.$/, '')
}
下载
npm i sg-utils -S
GitHub地址(记得给星哦)
系列文章
JavaScript工具类(一):util.js创建及上传
JavaScript工具类(二):cookie缓存
JavaScript工具类(三):localStorage本地储存
JavaScript工具类(四):数据类型
JavaScript工具类(五):string字符串
JavaScript工具类(六):number数字
JavaScript工具类(七):array数组
JavaScript工具类(八):object对象
JavaScript工具类(九):date日期
JavaScript工具类(十):base64编码、解码
JavaScript工具类(十一):浏览器、移动端类型
JavaScript工具类(十二):validate表单验证
JavaScript工具类(十三):url路径处理
JavaScript工具类(十四):json数据格式
JavaScript工具类:util.js用法实例