js 保留小数下取整

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const setPrice = (price: number) => Math.floor(price * 100) / 100;
setPrice(35.66) // 35.65 存在精度问题


/**
* 保留小数(下取整)
* @param n {Number} 要保留小数的数字
* @param len {Number} 要保留小数的位数
*/
const toFixed = (n: number, len: number): number => {
let val = "";
const nStr = n + "";
// 小数
const [integer, decimal] = nStr.split(".");

if (decimal === undefined) val = nStr;
else if (decimal.length <= len) val = `${integer}.${decimal}`;
else val = `${integer}.${decimal.substring(0, len)}`;

return Number(val);
};