UNPKG

@diyaner/ding

Version:

dingiyan常用ts/js工具

53 lines 1.57 kB
"use strict"; /* * @copyright: Huang Ding * @Author: ding-cx * @Date: 2021-04-10 09:23:58 * @LastEditors: ding * @LastEditTime: 2022-09-12 16:09:27 * @Description: 解决js的数值计算精度问题的尝试工具库。 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.calc = void 0; /** *处理js精度计算器 * * @export * @param {number} n1 数值1 * @param {("+" | "-" | "/" | "*")} op 加减乘除 * @param {number} n2 数值2 * @param {number} [fix=2] 保留小数位 * @return {*} 结果 */ function calc(n1, op, n2, fix = 2) { // 先把数乘10的次方,增大,再计算。此处倍数可根据想要的结果的小数位决定。(要四舍五入的结果时,,应该加大倍数) let fixNumber = Math.pow(10, fix); // 默认不处理大于100 0000 一百万的数。直接按四舍五入返回。 const maxNum = 1000000; fixNumber = n1 > maxNum || n2 > maxNum ? 1 : fixNumber; let ret = 0; switch (op) { case "+": ret = n1 * fixNumber + n2 * fixNumber; break; case "-": ret = n1 * fixNumber - n2 * fixNumber; break; case "*": ret = n1 * n2 * fixNumber; break; case "/": ret = (n1 / n2) * fixNumber; break; } // console.log(ret); ret = Math.round(ret); //四舍五入取整 ret = ret / fixNumber; // console.log(ret); return ret; } exports.calc = calc; exports.default = { calc, }; //# sourceMappingURL=numberFixed.js.map