后端返回数据前端保留两位小数
一.背景
在平时工作中尤其是银行金融类佘涉及到数据计算问题,数据统计又不能显示太多小数点,很多时候需求不一样,对数据的精度要求也不一样,下面是我在工作中用到的方法总结记录一下。
二.不同需求对应的方法
- toFixed() 方法
toFix()方法是将数据四舍五入转化成字符串。四舍五入的基础上输出字符串。
let num = 10.187;
let newnum = num.toFixed(2);
console.log('newnum:',newnum); // 10.19
console.log(typeof(newnum),'类型'); // string 类型
- 不失去经度的转化方法先转化成字符串在切割
let num = 10.189;
let str = '10.189';
let idx = str.indexOf('.');
let str1 = str.slice(0,idx+3);
console.log('str1:',str1); // 10.18
- 还有就是正则表达式匹配
- Math.round()方法是四舍五入取整(不适用)
三.总结
numFn(num){
let numStr = num.toString();
if(numStr.indexOf('.')<0){
// 没有小数点
return Number(numStr);
}else{
let idx = numStr.indexOf('.')
return Number(numStr.slice(0,idx+3));
}
}
console.log('输出:',this.numFn(10.1)); // 10.1 Number类型
console.log('输出:',this.numFn(10)); // 10 Number类型
console.log('输出:',this.numFn(10.189)); // 10.18 Number类型
还有更简单的方法大家一起学习交流,评论区见