超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

分享前端原生 JS 高精度計算實例

freeflydom
2024年8月13日 13:28 本文熱度 2138

嘗試著自己使用 JS 自己寫一個簡單的高精度計算分享給大家。

一、完整演示源碼

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8" />

<title>JavaScript 精確計算</title>

</head>

<body>

<!-- 你的腳本 -->

<script>

// 自定義高精度浮點數(shù)運算

// 對象格式寫法

var float_calculator = {

/**

* 1.記錄兩個運算數(shù)小數(shù)點后的位數(shù)

* 2.將其轉(zhuǎn)化為整數(shù)類型進行運算

* 3.移動小數(shù)點的位置

**/

add: function(arg1, arg2) {

var r1, r2, m;

try {

//取小數(shù)位長度

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 {

//取小數(shù)位長度

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("計算元數(shù)據(jù):", 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>

二、測試結果

計算元數(shù)據(jù): 1.11444    23.45674231

高精度加法計算結果:  24.57118231

高精度減法計算結果:  -22.34230231

高精度乘法計算結果:  26.141131899956402

高精度除法計算結果:  0.0475104336856229

高精度除法計算:10/3 的結果為: 3.3333333333333335

高精度除法計算:2/3 的結果為: 0.6666666666666666


轉(zhuǎn)自https://juejin.cn/post/7401408758343106587


該文章在 2024/8/14 10:29:55 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved