保留小数点后n位
用到js标准内置对象,以及表达式:
- String.prototype.substring()
- 返回一个字符串在开始索引到结束索引之间的一个 子集,这个子集不包含结束索引位置上的那个字符。
str.substring(start,end)
start 开始索引,end结束索引
- String.prototype.indexOf
- 返回调用它的String对象中第一次,出现的指定值的索引,如果未找到该值,则返回-1。
- typeof
- 返回字符串,表示未经计算的操作数的类型
思路
将数字转为字符串,找到小数点索引,根据想要截取的小数点后的位数,与小数点索引相加,从index为0的位置开始截取字符串,要注意sustring()的用法;
/**
*
* @param {(number|string)} value 传入的数字或者数字字符串
* @param {(undefined|number)} places 要保留的位数
*/
export function keepNDecimalPlaces(value, places) {
let val = value
let pla
if (places) {
pla = places
} else {
pla = 0
}
if (typeof value !== 'string') {
value = value.toString()
}
if (value.indexOf(".") > 0) {
val = Number(value.substring(0, value.indexOf(".") + pla + 1))
} else {
val = Number(value)
}
return val
}
参考MDN文档: