分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

js 加减乘除以及四舍五入 新写法

发布时间:2023-09-06 02:32责任编辑:顾先生关键词:js

1 四舍五入

eg: (1.23).round() = 1.2

(1.2456).round(3) = 1.246

if (!Number.prototype.round) { ???Number.prototype.round = function (count) { ???????var res = 0; ???????var val = this.toString(); ???????var num = parseInt(count || 2); ???????var dataArr = val.split(‘.‘); ???????var arr1 = dataArr[0] || ""; ???????var arr2 = dataArr[1] || ""; ???????var newArr2 = arr2; ???????if (arr2.length > num) { ???????????var lastNum = arr2.substring(num, num + 1); ???????????if (parseInt(lastNum) >= 5) { ???????????????newArr2 = parseInt(newArr2.substring(0, num)) + 1; ???????????????newArr2 = newArr2.toString(); ???????????????if (newArr2.length < num) { ???????????????????for (var i = 0; i < (num - newArr2.length); i++) { ???????????????????????newArr2 = "0" + newArr2; ???????????????????} ???????????????} ???????????} ???????} ???????val = parseFloat(arr1 + ‘.‘ + newArr2); ???????res = parseFloat(val.toFixed(num)); ???????return res; ???}}

2 加减乘除

eg: (1).plus(2) = 3

if (!Number.prototype.plus) { //‘+‘ ???Number.prototype.plus = function (addend) { ???????var arg1 = this, ???????????arg2 = addend; ???????var r1, ???????????r2, ???????????m, ???????????num1, ???????????num2; ???????try { ???????????r1 = arg1.toString().split(".")[1].length; ???????} catch (e) { ???????????r1 = 0 ???????} ???????try { ???????????r2 = arg2.toString().split(".")[1].length; ???????} catch (e) { ???????????r2 = 0 ???????} ???????m = Math.pow(10, Math.max(r1, r2)); ???????num1 = r1 == 0 ? parseInt(arg1 * m) : (parseInt(`${arg1.toString().replace(‘.‘, ‘‘)}`) * m / (Math.pow(10, r1))); ???????num2 = r2 == 0 ? parseInt(arg2 * m) : (parseInt(`${arg2.toString().replace(‘.‘, ‘‘)}`) * m / (Math.pow(10, r2))); ???????return (num1 + num2) / m; ???}}if (!Number.prototype.minus) { //‘-‘ ???Number.prototype.minus = function (Subtraction) { ???????var arg1 = this, ???????????arg2 = Subtraction; ???????var r1, ???????????r2, ???????????m, ???????????n, ???????????num1, ???????????num2; ???????try { ???????????r1 = arg1.toString().split(".")[1].length ???????} catch (e) { ???????????r1 = 0 ???????} ???????try { ???????????r2 = arg2.toString().split(".")[1].length ???????} catch (e) { ???????????r2 = 0 ???????} ???????m = Math.pow(10, Math.max(r1, r2)); ???????n = (r1 >= r2) ? r1 : r2; ???????num1 = r1 == 0 ? parseInt(arg1 * m) : (parseInt(`${arg1.toString().replace(‘.‘, ‘‘)}`) * m / (Math.pow(10, r1))); ???????num2 = r2 == 0 ? parseInt(arg2 * m) : (parseInt(`${arg2.toString().replace(‘.‘, ‘‘)}`) * m / (Math.pow(10, r2))); ???????return parseFloat(((num1 - num2) / m).toFixed(n)); ???}}if (!Number.prototype.multiply) { //‘*‘ ???Number.prototype.multiply = function (multiple) { ???????var arg1 = this, ???????????arg2 = multiple; ???????var m = 0, ???????????s1 = arg1.toString(), ???????????s2 = arg2.toString(); ???????try { ???????????m += s1.split(".")[1].length ???????} catch (e) { } ???????try { ???????????m += s2.split(".")[1].length ???????} catch (e) { } ???????return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) ???} ???if (!Number.prototype.devide) { //‘/‘ ???????Number.prototype.devide = function (divisor) { ???????????var arg1 = this, ???????????????arg2 = divisor; ???????????var t1 = 0, ???????????????t2 = 0, ???????????????r1, ???????????????r2; ???????????try { ???????????????t1 = arg1.toString().split(".")[1].length ???????????} catch (e) { } ???????????try { ???????????????t2 = arg2.toString().split(".")[1].length ???????????} catch (e) { } ???????????r1 = Number(arg1.toString().replace(".", "")) ???????????r2 = Number(arg2.toString().replace(".", "")) ???????????return (r1 / r2).multiply(Math.pow(10, t2 - t1)); ???????} ???}}

if (!Number.prototype.round) {    Number.prototype.round = function (count) {        var res = 0;        var val = this.toString();        var num = parseInt(count || 2);        var dataArr = val.split(‘.‘);        var arr1 = dataArr[0] || "";        var arr2 = dataArr[1] || "";        var newArr2 = arr2;        if (arr2.length > num) {            var lastNum = arr2.substring(num, num + 1);            if (parseInt(lastNum) >= 5) {                newArr2 = parseInt(newArr2.substring(0, num)) + 1;                newArr2 = newArr2.toString();                if (newArr2.length < num) {                    for (var i = 0; i < (num - newArr2.length); i++) {                        newArr2 = "0" + newArr2;                    }                }            }        }
        val = parseFloat(arr1 + ‘.‘ + newArr2);        res = parseFloat(val.toFixed(num));        return res;    }}

js 加减乘除以及四舍五入 新写法

原文地址:https://www.cnblogs.com/zxhome/p/10342313.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved