公司网站架构,装饰设计网站建设,西地那非片的功能主治,织梦网站301跳转怎么做前言
这个合集功能主要是为了处理前端计算数据 因为我的项目有很多表格公式计算是前端写的 所以有一个很麻烦的事情就是加减乘除的时候因为各种情况导致报错 最常见的就是后端传的值不规范 有时候这个字段没有值的时候给我返回的是数字0#xff0c;有时候字符串数字0#xf…前言
这个合集功能主要是为了处理前端计算数据 因为我的项目有很多表格公式计算是前端写的 所以有一个很麻烦的事情就是加减乘除的时候因为各种情况导致报错 最常见的就是后端传的值不规范 有时候这个字段没有值的时候给我返回的是数字0有时候字符串数字0有时候null有时候 ’ ’ 等等之类的不确定情况 所以我就写了几个方法统一把后端的数据丢里面直接校验转换凡是没有值的统一都转0这样计算不会报错。
数字转换传入一个参数给你转成数字返回如果传入的转不了数字就返回0
numFormatting(a, f 2) {if ((!isNaN(parseFloat(a)) isFinite(a))) {let num1 parseFloat(a)if (num1 ! 0 ) {return Number((num1).toFixed(f))} else {return 0}} else {return 0}},小数点保留两位对象统一处理计算后小数点保留两位
参数1传入要转的对象。 参数2数组数组中的字段不处理。格式[‘doctor’,‘name’,‘title’] 参数3保留小数点后位数默认2位
formatObj(obj, arr, f 2) {let keyList Object.keys(obj)keyList.forEach(key {if (arr.indexOf(key) -1) {if (obj[key].toString().indexOf(%) ! -1) {let num obj[key].slice(0, -1)obj[key] parseFloat(num) 0 ? 0% : parseFloat(num).toFixed(f) %} else {obj[key] parseFloat(obj[key]) 0 ? 0 : parseFloat(obj[key]).toFixed(f)}}})return obj},加法
function addition(a, b, f 2) {if ((!isNaN(parseFloat(a)) isFinite(a)) (!isNaN(parseFloat(b)) isFinite(b))) {let num1 parseFloat(a)let num2 parseFloat(b)return (num1 num2)0?0:(num1 num2).toFixed(f)} else {return 0}
}减法
function subtraction(a, b, f 2) {if ((!isNaN(parseFloat(a)) isFinite(a)) (!isNaN(parseFloat(b)) isFinite(b))) {let num1 parseFloat(a)let num2 parseFloat(b)return (num1 - num2).toFixed(f)} else {return 0}
}乘法
function multiplication(a, b, f 2){if ((!isNaN(parseFloat(a)) isFinite(a)) (!isNaN(parseFloat(b)) isFinite(b))) {let num1 parseFloat(a)let num2 parseFloat(b)if (num1 ! 0 num2 ! 0) {return (num1 * num2).toFixed(f)} else {return 0}} else {return 0}
}除法传入两个参数相除第三个参数是小数点后留几位传入的参数有问题会返回0第四个参数是乘的倍数默认乘100不乘可以传1过来
function divisions(a, b, f 2,multiple100) {if ((!isNaN(parseFloat(a)) isFinite(a)) (!isNaN(parseFloat(b)) isFinite(b))) {let num1 parseFloat(a)let num2 parseFloat(b)if (num1 ! 0 num2 ! 0) {return ((num1 / num2) * multiple).toFixed(f)} else {return 0}} else {return 0}
}