js 加减乘除以及四舍五入 新写法
1 四舍五入
eg: (1.23).round() = 1.2
(1.2456).round(3) = 1.246
Number.prototype.round = function (count) {
    var res = ;
    var val = this.toString();
    var num = parseInt(count || );
    var dataArr = val.split('.');
    var arr1 = dataArr[] || "";
    var arr2 = dataArr[] || "";
    var newArr2 = arr2;
    if (arr2.length > num) {
      var lastNum = arr2.substring(num, num + );
      if (parseInt(lastNum) >= ) {
        newArr2 = parseInt(newArr2.substring(, num)) + ;
        newArr2 = newArr2.toString();
        if(newArr2.length<num){
          for(var i =; i< (num - newArr2.length); i ++){
            newArr2 = "" + newArr2;
          }
        }
        else if (newArr2.length > num) {
            arr1 = (parseInt(arr1) + ).toString();
            newArr2 = newArr2.substring(, );
        }
      }
    }
    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(".")[].length;
        } catch (e) {
            r1 =
        }
        try {
            r2 = arg2.toString().split(".")[].length;
        } catch (e) {
            r2 =
        }
        m = Math.pow(, Math.max(r1, r2));
        num1 = r1 ==  ? parseInt(arg1 * m) : (parseInt(`${arg1.toString().replace('.', '')}`) * m / (Math.pow(, r1)));
        num2 = r2 ==  ? parseInt(arg2 * m) : (parseInt(`${arg2.toString().replace('.', '')}`) * m / (Math.pow(, 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(".")[].length
        } catch (e) {
            r1 =
        }
        try {
            r2 = arg2.toString().split(".")[].length
        } catch (e) {
            r2 =
        }
        m = Math.pow(, Math.max(r1, r2));
        n = (r1 >= r2) ? r1 : r2;
        num1 = r1 ==  ? parseInt(arg1 * m) : (parseInt(`${arg1.toString().replace('.', '')}`) * m / (Math.pow(, r1)));
        num2 = r2 ==  ? parseInt(arg2 * m) : (parseInt(`${arg2.toString().replace('.', '')}`) * m / (Math.pow(, r2)));
        return parseFloat(((num1 - num2) / m).toFixed(n));
    }
}
if (!Number.prototype.multiply) { //'*'
    Number.prototype.multiply = function (multiple) {
        var arg1 = this,
            arg2 = multiple;
        var m = ,
            s1 = arg1.toString(),
            s2 = arg2.toString();
        try {
            m += s1.split(".")[].length
        } catch (e) { }
        try {
            m += s2.split(".")[].length
        } catch (e) { }
        return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(, m)
    }
    if (!Number.prototype.devide) { //'/'
        Number.prototype.devide = function (divisor) {
            var arg1 = this,
                arg2 = divisor;
            var t1 = ,
                t2 = ,
                r1,
                r2;
            try {
                t1 = arg1.toString().split(".")[].length
            } catch (e) { }
            try {
                t2 = arg2.toString().split(".")[].length
            } catch (e) { }
            r1 = Number(arg1.toString().replace(".", ""))
            r2 = Number(arg2.toString().replace(".", ""))
            return (r1 / r2).multiply(Math.pow(, t2 - t1));
        }
    }
}
js 加减乘除以及四舍五入 新写法的更多相关文章
- Atitit.js模块化 atiImport 的新特性javascript import
		Atitit.js模块化 atiImport 的新特性javascript import 1. 常见的js import规范amd ,cmd ,umd1 1.1. Require更多流行3 2. at ... 
- js实现小数点四舍五入
		js实现小数点四舍五入 其实这个问题,在之前的面试中被提问到了,由于笔者平时都是用原生的toFixed()的方法来保留小数点,所以当时并没有回答出来这个问题,呜呜呜~.~ 
- 介绍Ext JS 4.2的新特性的《深入浅出Ext JS》上市
		以用户为中心的时代,应用的界面外观变得越来越重要.然而,很多程序员都缺乏美术功底,要开发出界面美观的应用实属不易.Ext JS的出现,为广大程序员解决了这一难题.它有丰富多彩的界面和强大的功能,是开发 ... 
- Atitit js版本es5 es6新特性
		Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ... 
- 《精通Matlab神经网络》例10-16的新写法
		<精通Matlab神经网络>书中示例10-16,在创建BP网络时,原来的写法是: net = newff(minmax(alphabet),[S1 S2],{'logsig' 'logsi ... 
- atitit.js 各版本 and 新特性跟浏览器支持报告
		atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScrip ... 
- [BS-02] iOS数组、字典、NSNumber 新写法—— @[]、@{}
		IOS数组.字典.NSNumber 新写法—— @[].@{} //标准写法 NSNumber * number = [NSNumber numberWithInt:]; NSArray * ar ... 
- 【译】 Node.js v0.12的新特性 -- Cluster模式采用Round-Robin负载均衡
		原文:https://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing 本 ... 
- atitit.atiOrm.js v2 q61 版本新特性.docx
		atitit.atiOrm.js v2 q61 版本新特性.docx 1. V1新特性如下1 1.1. V2规划,直接生成sql在js端1 2. Orm设计框架图1 2.1. atiOrm.js的原理 ... 
随机推荐
- 生信基础知识【04】GO和pathway分析
			非原创 参考资料: 一文掌握GO和pathway分析 - 生物信息学讨论版 -丁香园论坛http://www.dxy.cn/bbs/thread/34904124#34904124 GO富集 GO是G ... 
- 转:VB.NET Office操作之Word
			在这里给出了一个Word操作的类,该类具备了对word 文档操作的基本功能,包括word 文档的新建,打开,保存,另存,插入图片,插入表格,插入文字,读取文字,定位光标位置,移动光标,移动到指定页等等 ... 
- 数据库索引的数据结构b+树
			b+树的查找过程:如上图所示,如果要查找数据项29,那么首先会把磁盘块1由磁盘加载到内存,此时发生一次IO,在内存中用二分查找确定29在17和35之间,锁定磁盘块1的P2指针, ... 
- jQuery获取各种位置方法
			一.获取窗口的宽高 1.获取流览器显示区域的高度 : $(window).height(); 2.获取流览器显示区域的宽度 : $(window).width(); 3.获取文档流的高度 : $(do ... 
- gentoo virtual couldnt download
			今天在更新系统的时候,提示 virtualbox-bin 从原始地址下载不了,经过一番摸索,通过下面的方式即可正常安装. http://download.virtualbox.org/virtualb ... 
- Xeon Phi 《协处理器高性能编程指南》随书代码整理 part 4
			▶ 第五章,几个优化 ● 代码 #include <stdio.h> #include <stdlib.h> #include <math.h> #define S ... 
- orcal - 伪列
			数据伪劣 行号 ROWNUM SELECT ROWNUM, empno,ename,sal from emp; 取出第一行数据 SELECT ROWNUM, empno,ename,sal from ... 
- springboot学习随笔(三):Controller参数映射
			接上章内容,我们看看浏览器参数如何映射到我们的Controller层 我们新建UserController和User实 User.java package com.example.main; impo ... 
- VM下安装Windows 2008 R2服务器操作系统
			打开虚拟机,双击双击新的虚拟机. 2 硬件兼容性选择workstation10.点击下一步. 3 选择我以后安装操作系统.点击继续 4 选择Microsoft windows,版本为windows s ... 
- thinkphp5.1 使用success();和error();要注意的点
			public function succ() { $this->success(); $this->error(); } 这里的$this-> 老是忘掉 记录一下 
