LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

分享前端原生 JS 高精度计算实例

freeflydom
2024年8月13日 13:28 本文热度 1001

尝试着自己使用 JS 自己写一个简单的高精度计算分享给大家。

一、完整演示源码

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8" />

<title>JavaScript 精确计算</title>

</head>

<body>

<!-- 你的脚本 -->

<script>

// 自定义高精度浮点数运算

// 对象格式写法

var float_calculator = {

/**

* 1.记录两个运算数小数点后的位数

* 2.将其转化为整数类型进行运算

* 3.移动小数点的位置

**/

add: function(arg1, arg2) {

var r1, r2, m;

try {

//取小数位长度

r1 = arg1.toString().split(".")[1].length;

r2 = arg2.toString().split(".")[1].length;

} catch (e) {

r1 = 0;

r2 = 0;

}

m = Math.pow(10, Math.max(r1, r2)); //计算因子


return (arg1 * m + arg2 * m) / m;

},

minus: function(arg1, arg2) {

return this.add(arg1, -arg2);

},

mul: function(arg1, arg2) {

var r1, r2, m;

try {

//取小数位长度

r1 = arg1.toString().split(".")[1].length;

r2 = arg2.toString().split(".")[1].length;

} catch (e) {

r1 = 0;

r2 = 0;

}

m = Math.pow(10, Math.max(r1, r2)); //计算因子


return (arg1 * m) * (arg2 * m) / (m * m);

},

div: function(arg1, arg2) {

if (arg2 == 0) return 0;

var t1 = 0,

t2 = 0,

r1, r2;

try {

var arr1 = arg1.toString().split(".");

var arr2 = arg2.toString().split(".");

t1 = arr1.length == 1 ? 0 : arr1[1].length;

t2 = arr2.length == 1 ? 0 : arr2[1].length;

} catch (e) {

console.log(e);

}


with(Math) {

r1 = Number(arg1.toString().replace(".", ""));

r2 = Number(arg2.toString().replace(".", ""));

}

return (r1 / r2) * Math.pow(10, t2 - t1);

}

};


let a = 1.11444, b = 23.45674231;

console.log("计算元数据:", a , "  ", b)

console.log("高精度加法计算结果: ", float_calculator.add(a , b));

console.log("高精度减法计算结果: ", float_calculator.minus(a, b));

console.log("高精度乘法计算结果: ", float_calculator.mul(a, b));

console.log("高精度除法计算结果: ", float_calculator.div(a, b));


console.log("高精度除法计算:10/3 的结果为:", float_calculator.div(10, 3));

console.log("高精度除法计算:2/3 的结果为:", float_calculator.div(2, 3));

</script>

</body>

</html>

二、测试结果

计算元数据: 1.11444    23.45674231

高精度加法计算结果:  24.57118231

高精度减法计算结果:  -22.34230231

高精度乘法计算结果:  26.141131899956402

高精度除法计算结果:  0.0475104336856229

高精度除法计算:10/3 的结果为: 3.3333333333333335

高精度除法计算:2/3 的结果为: 0.6666666666666666


转自https://juejin.cn/post/7401408758343106587


该文章在 2024/8/14 10:29:55 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved