js保留两位小数

js保留多少位小数

四舍五入

/**
 * @param {Boolean} ra 整数是否不添加小数
 * @param {Number} w 精确保留多少位
 */
function setNum(num, ra = false, w = 2) {
  if (isNaN(num)) {
    return num
  }
  num = Number(num)
  if (ra&&!(num%1)) {
    return num
  } else {
  	num = (Math.round(Number(num) * Math.pow(10, w)) / Math.pow(10, w))
    return num.toFixed(w)
  }
}

直接舍去

/**
 * @param {Boolean} ra 整数是否不添加小数
 * @param {Number} w 精确保留多少位
 */
function setNum(num, ra = false, w = 2) {
  if (isNaN(num)) {
    return num
  }
  num = Number(num)
  if (ra&&!(num%1)) {
    return num
  } else {
  	num = Math.floor(num*Math.pow(10,w))/Math.pow(10,w)
    return num.toFixed(w)
  }
}

向上取整

/**
 * @param {Boolean} ra 整数是否不添加小数
 * @param {Number} w 精确保留多少位
 */
function setNum(num, ra = false, w = 2) {
  if (isNaN(num)) {
    return num
  }
  if (ra&&!(num%1)) {
    return num
  } else {
	num = Number(num)
  	if (num%1) {
  		num = num.toString()
  		let [front, last] = num.split('.')
  		if (last.length <= w) {
			return Number(num).toFixed(w)
		} else {
			return `${front}.${Number(last.slice(0,w))+1}`
		}
	} else {
		return num.toFixed(w)
	}
  }
}

如果遇到小数位不够不想用0补直接Number

// 例如保留两位数的四舍五入想要 1.1 输出还是1.1但上面的方法是输出1.10
Number(setNum(1.1))
// 这样就得到了1.1输出1.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值