JS实现精确加减乘除的实例
项目中要使用 JS 实现自动计算的功能,进行一些浮点数运算时,计算结果却是一长串的值,本文主要和大家分享JS实现精确加减乘除的实例,希望能帮助到大家。
具体代码如下:
//加法函数 2 function accAdd(arg1, arg2) { 3 var r1, r2, m; 4 try { 5 r1 = arg1.toString().split(".")[1].length; 6 } 7 catch (e) { 8 r1 = 0; 9 } 10 try { 11 r2 = arg2.toString().split(".")[1].length; 12 } 13 catch (e) { 14 r2 = 0; 15 } 16 m = Math.pow(10, Math.max(r1, r2)); 17 return (arg1 * m + arg2 * m) / m; 18 } 19 //给Number类型增加一个add方法,,使用时直接用 .add 即可完成计算。 20 Number.prototype.add = function (arg) { 21 return accAdd(arg, this); 22 }; 23 24 25 //减法函数 26 function Subtr(arg1, arg2) { 27 var r1, r2, m, n; 28 try { 29 r1 = arg1.toString().split(".")[1].length; 30 } 31 catch (e) { 32 r1 = 0; 33 } 34 try { 35 r2 = arg2.toString().split(".")[1].length; 36 } 37 catch (e) { 38 r2 = 0; 39 } 40 m = Math.pow(10, Math.max(r1, r2)); 41 //last modify by deeka 42 //动态控制精度长度 43 n = (r1 >= r2) ? r1 : r2; 44 return ((arg1 * m - arg2 * m) / m).toFixed(n); 45 } 46 47 //给Number类型增加一个add方法,,使用时直接用 .sub 即可完成计算。 48 Number.prototype.sub = function (arg) { 49 return Subtr(this, arg); 50 }; 51 52 53 //乘法函数 54 function accMul(arg1, arg2) { 55 var m = 0, s1 = arg1.toString(), s2 = arg2.toString(); 56 try { 57 m += s1.split(".")[1].length; 58 } 59 catch (e) { 60 } 61 try { 62 m += s2.split(".")[1].length; 63 } 64 catch (e) { 65 } 66 return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m); 67 } 68 //给Number类型增加一个mul方法,使用时直接用 .mul 即可完成计算。 69 Number.prototype.mul = function (arg) { 70 return accMul(arg, this); 71 }; 72 73 74 //除法函数 75 function accDiv(arg1, arg2) { 76 var t1 = 0, t2 = 0, r1, r2; 77 try { 78 t1 = arg1.toString().split(".")[1].length; 79 } 80 catch (e) { 81 } 82 try { 83 t2 = arg2.toString().split(".")[1].length; 84 } 85 catch (e) { 86 } 87 with (Math) { 88 r1 = Number(arg1.toString().replace(".", "")); 89 r2 = Number(arg2.toString().replace(".", "")); 90 return (r1 / r2) * pow(10, t2 - t1); 91 } 92 } 93 //给Number类型增加一个div方法,,使用时直接用 .div 即可完成计算。 94 Number.prototype.div = function (arg) { 95 return accDiv(this, arg); 96 };
使用方法如下:
//加法示例(其它的都类似) 2 function calculate() { 3 //数字1 4 var num1 = 10; 5 //数字2 6 var num2 = 5; 7 //计算 num1 + num2 8 alert(num1.add(num2)); 9 }
相关推荐:
以上是JS实现精确加减乘除的实例的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

如何使用WebSocket和JavaScript实现在线语音识别系统引言:随着科技的不断发展,语音识别技术已经成为了人工智能领域的重要组成部分。而基于WebSocket和JavaScript实现的在线语音识别系统,具备了低延迟、实时性和跨平台的特点,成为了一种被广泛应用的解决方案。本文将介绍如何使用WebSocket和JavaScript来实现在线语音识别系

WebSocket与JavaScript:实现实时监控系统的关键技术引言:随着互联网技术的快速发展,实时监控系统在各个领域中得到了广泛的应用。而实现实时监控的关键技术之一就是WebSocket与JavaScript的结合使用。本文将介绍WebSocket与JavaScript在实时监控系统中的应用,并给出代码示例,详细解释其实现原理。一、WebSocket技

如何使用WebSocket和JavaScript实现在线预约系统在当今数字化的时代,越来越多的业务和服务都需要提供在线预约功能。而实现一个高效、实时的在线预约系统是至关重要的。本文将介绍如何使用WebSocket和JavaScript来实现一个在线预约系统,并提供具体的代码示例。一、什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工

如何利用JavaScript和WebSocket实现实时在线点餐系统介绍:随着互联网的普及和技术的进步,越来越多的餐厅开始提供在线点餐服务。为了实现实时在线点餐系统,我们可以利用JavaScript和WebSocket技术。WebSocket是一种基于TCP协议的全双工通信协议,可以实现客户端与服务器的实时双向通信。在实时在线点餐系统中,当用户选择菜品并下单

JavaScript和WebSocket:打造高效的实时天气预报系统引言:如今,天气预报的准确性对于日常生活以及决策制定具有重要意义。随着技术的发展,我们可以通过实时获取天气数据来提供更准确可靠的天气预报。在本文中,我们将学习如何使用JavaScript和WebSocket技术,来构建一个高效的实时天气预报系统。本文将通过具体的代码示例来展示实现的过程。We

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest

用法:在JavaScript中,insertBefore()方法用于在DOM树中插入一个新的节点。这个方法需要两个参数:要插入的新节点和参考节点(即新节点将要被插入的位置的节点)。

JavaScript中的HTTP状态码获取方法简介:在进行前端开发中,我们常常需要处理与后端接口的交互,而HTTP状态码就是其中非常重要的一部分。了解和获取HTTP状态码有助于我们更好地处理接口返回的数据。本文将介绍使用JavaScript获取HTTP状态码的方法,并提供具体代码示例。一、什么是HTTP状态码HTTP状态码是指当浏览器向服务器发起请求时,服务
