精华内容
下载资源
问答
  • JS 数值计算

    千次阅读 2018-06-01 10:47:27
    /** * 加算 * @param num1 * @param num2 * @returns */ function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r...
        
    
    /**
     * 加算
     * @param num1
     * @param num2
     * @returns
     */
    function accAdd(arg1, arg2) {
        var r1, r2, m, c;
        try {
            r1 = arg1.toString().split(".")[1].length;
        } catch (e) {
            r1 = 0;
        }
        try {
            r2 = arg2.toString().split(".")[1].length;
        } catch (e) {
            r2 = 0;
        }
        c = Math.abs(r1 - r2);
        m = Math.pow(10, Math.max(r1, r2));
        if (c > 0) {
            var cm = Math.pow(10, c);
            if (r1 > r2) {
                arg1 = Number(arg1.toString().replace(".", ""));
                arg2 = Number(arg2.toString().replace(".", "")) * cm;
            } else {
                arg1 = Number(arg1.toString().replace(".", "")) * cm;
                arg2 = Number(arg2.toString().replace(".", ""));
            }
        } else {
            arg1 = Number(arg1.toString().replace(".", ""));
            arg2 = Number(arg2.toString().replace(".", ""));
        }
        return (arg1 + arg2) / m;
    }
    
    /**
     * 減算
     * @param arg1
     * @param arg2
     * @returns
     */
    function accSub(arg1, arg2) {
        var r1, r2, m, n;
        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)); // last modify by deeka //动态控制精度长度
        n = (r1 >= r2) ? r1 : r2;
        return ((arg1 * m - arg2 * m) / m).toFixed(n);
    }
    
    /**
     * 乗算
     *
     * @param arg1
     * @param arg2
     * @returns
     */
    function accMul(arg1, arg2) {
        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);
    }
    
    /**
     * 除算
     *
     * @param arg1
     * @param arg2
     * @returns
     */
    function accDiv(arg1, arg2) {
        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) {
        }
        with (Math) {
            r1 = Number(arg1.toString().replace(".", ""));
            r2 = Number(arg2.toString().replace(".", ""));
            return (r1 / r2) * pow(10, t2 - t1);
        }
    }

    展开全文
  • JS数值计算

    2018-02-01 11:07:00
    JS进行数值计算  function checkCent(id, sort){ var maxcent = id.split("_")[2]; var centValue = $("#"+id).val(); if("kfx"==sort){ var patrn = /^(-(0|[1-9]\d*))$|^(-(0|[1-9]\d*)\.\d{0,2})$/;...

    JS进行数值计算 

    function checkCent(id, sort){
    		var maxcent = id.split("_")[2];
    		var centValue = $("#"+id).val();
    		if("kfx"==sort){
    		    var patrn = /^(-(0|[1-9]\d*))$|^(-(0|[1-9]\d*)\.\d{0,2})$/;
    		    var patrnz = /^(0|[1-9]\d*)$|^(0|[1-9]\d*)\.\d{0,2}$/
    		    if(!patrn.exec(centValue) && !patrnz.exec(centValue)){
    		       $("#"+id).val("0.0");
    		       alert("请输入正确的负数!");
    		       $("#"+id).css('background','#FF0000');
    		       return false;
    		    }else{
    			   	 if(maxcent!=""&&(parseFloat(centValue)>parseFloat(maxcent)||parseFloat(centValue)<parseFloat("-"+maxcent))){
    				       $("#"+id).val("0.0");
    				       alert("输入分数"+centValue+"超过指标分值"+maxcent+"!");
    				       $("#"+id).css('background','#FF0000');
    					 return false;
    				 }
    		     	if(!patrn.exec(centValue)){//非负数 系统自动转换成负数
    		     		$("#"+id).val("-"+centValue);
    		     	} 
    		     	$("#"+id).css('background','white');
    		    }
    		}else if("jfx"==sort){
    	          patrn = /^(0|[1-9]\d*)$|^(0|[1-9]\d*)\.\d{0,2}$/;
    	          if(!patrn.exec(centValue)){
    	        	  $("#"+id).val("0.0");
    			       alert("请输入正确的非负数!");
    			       $("#"+id).css('background','#FF0000');
    			       return false;
    	           }
    	 	   	 if(maxcent!=""&&parseFloat(centValue)>parseFloat(maxcent)){
    	 	   		   $("#"+id).val("0.0");
    		           alert("输入分数"+centValue+"超过指标分值"+maxcent+"!");
    		           $("#"+id).css('background','#FF0000');
    				 return false;
    			 }
    	 	   	$("#"+id).css('background','white');
    	    }
    	    //进行分数总计
    		var centArr=  $("input:text[name='cent']");
    	    var centtotal = 100.0;
    		$.each(centArr, function(i, n){
    			var centid = n.id;
    			var agreementid = centid.split("_")[0];
    		    if(agreementid == id.split("_")[0]){
    		    	if("jfx"==sort){
    			    	centtotal += parseFloat($("#"+centid).val());
    		    	}else if("kfx"==sort){
    			    	centtotal += parseFloat($("#"+centid).val());
    		    	}
    		    	if(centtotal > 100.0){
    			    	$("#"+agreementid+"_totalScore").val(100.0);
    		    	}else{
    			    	$("#"+agreementid+"_totalScore").val(centtotal);
    		    	}
    		    }
    		});
    	}

     

    转载于:https://my.oschina.net/u/3768722/blog/1616687

    展开全文
  • js数值计算

    2015-11-06 11:57:15
    利用js计算11.2-10.9时居然输出为1.29999999999997,让我很是头疼,如此简单的计算居然。。。 上网查资料知道这是由于javascript是一门弱类型的语言,从设计思想上没有对浮点型有个严格的数据类型,不像其他的C/C++...

    利用js计算11.2-10.9时居然输出为1.29999999999997,让我很是头疼,如此简单的计算居然。。。

    上网查资料知道这是由于javascript是一门弱类型的语言,从设计思想上没有对浮点型有个严格的数据类型,不像其他的C/C++/JAVA语言中已经封装好方法来避免此精度问题了


    下面说一下我的解决方式:

    我的功能中要满足的要求是保留两位小数就好,所以在这里直接

    var price = 11.2-10.9;
    price.toFixed(2);
    			

    结果为:1.30


    就好了

    展开全文
  • JS--JavaScript数值计算与类型转换详解

    千次阅读 2019-09-22 20:58:00
    JavaScript数值计算 JavaScript在执行数值运算时,常会出现浮点数溢出问题。 例如:0.1 + 0.2 不等于 0.3 num = 0.1 + 0.2;//0.300000000000000004 这是JavaScript中最常报告的Bug,并且这是遵循二进制浮点数算数...

    JavaScript数值计算

    JavaScript在执行数值运算时,常会出现浮点数溢出问题。
    例如:0.1 + 0.2 不等于 0.3

    num = 0.1 + 0.2;//0.300000000000000004
    

    这是JavaScript中最常报告的Bug,并且这是遵循二进制浮点数算数标准(IEEE 754)而导致的结果。这个标准适合很多应用,但它违背了数字基本常识。

    幸运的是,浮点数中的整数运算是精准的,所以小数表现出来的问题可以通过指定精度来避免。

    num = (1 + 2) / 10;//0.3
    

    这种处理经常在货币计算中用到,在计算货币时当然期望得到精确的结果。例如,元可以通过乘以100而全部转成分,然后就可以准确地将每项相加,求和后的结果可以除以100转换回元。

    JavaScript能够自动转换变量的数据类型,这种转换是一种隐性行为。在自动转换数据类型时,JavaScript一般遵循:如果某个类型的值被用于需要其它类型的值的环境中,JavaScript就自动将这个值转换成需要的类型,具体如下表:

    值(value)字符串操作环境数字运算环境逻辑运算环境对象操作环境
    undefined“undefined”NaNfalseError
    null“null”0falseError
    非空字符串不转换字符串对应的数字或NaNtrueString
    空字符串不转换0falseString
    0“0”不转换falseNumber
    NaN“NaN”不转换falseNumber
    Infinity“Infinity”不转换trueNumber
    Number.POSITIVE_INFINITY“Infinity"不转换trueNumber
    Number.NEGATIVE_INFINITY“-Infinity”不转换trueNumber
    Number.MAX_VALUE“1.7976931348623157e” + 308不转换trueNumber
    Number.MIN_VALUE”5e-324"不转换trueNumber
    其它所有数字”数字的字符串值“不转换trueNumber
    true“true”1不转换Boolean
    false”false"0不转换Boolean
    对象toString()valueOf()或toString()或NaNtrue不转换

    如果把非空对象用在逻辑运算环境中,则对象被转换为true。此时的对象包括所有类型的对象,即使是值为false的包装对象也转换为true。

    如果把对象用在数值运算环境中,则对象会被自动转换为数字,如果转换失败,则返回值NaN。被转换为数值0.如果数组仅包含一个数字元素,则被转换为该数字的数值。如果数组包含多个元素,或者仅包含一个非数字元素,则返回NaN。

    当对象用于字符串环境中时,JavaScript能够调用toString()方法把对象转换为字符串再进行相关计算。当对象与数值进行加号运算时,则会尝试将对象转换为数值,然后参与求和运算。如果不饿能够将对象转换为有效数值,则执行字符串连接操作。

    展开全文
  • 主要介绍了js数值计算时使用parseInt进行数据类型转换(jquery),需要的朋友可以参考下
  • JS数值计算精度

    千次阅读 2019-03-11 13:39:19
    我们可能都知道在JS里面进行数值运算的时候,得到的结果可能和预期不符,可以看下面的例子: var num1 = 0.1; var num2 = 0.2; alert(num1+num2 === '0.3'); // false // num1+num2=0.30000000000000004 ...
  • js数值类型计算一直有一个坑,就是关于计算精度的问题。在js计算 0.1+0.2、0.3-0.1等运算时,会出现很惊人的一大串数值,相信很多人都遇到过0.1+0.2 //0.30000000000000004 0.3-0.1 //0.19999999999999998复制代码...
  • js 数值计算问题

    2016-11-23 17:08:38
    Js代码  var num1=3.3;   var num2=7.17;   var ret=parseFloat(num1)+parseFloat(num2);   //ret的值为:10.469999999999998    这是JS对浮点型数据运算时,个别比较特殊的数字存在bug,可能是...
  • BigNumber.js-文档 特征 整数和小数 简单的API,但功能齐全 比Java的BigDecimal的JavaScript版本更快,更小,甚至更容易使用 缩小并压缩8 KB 复制toExponential,toFixed,toPrecision和toStringJavaScript的...
  • javascript数值计算得注意精度问题

    千次阅读 2012-09-28 11:11:42
    javascript 数值运算精度  使用javascript进行数值运算的时候要格外小心和注意,因为javas的浮点数的精度问题很严重,比如44444.1+4.2的值并不是想象中的44448.2,而是44448.299999999995 ,同样对于乘法也是有很...
  • JS数值计算相减过程中,当遇到数字3,6,9时非常讨厌,因为相减会产生后面一大串的小数位,造成数值上的不精确,我也是郁闷了很长时间才发现,需要手动的处理给它做个还原手术,换它本来面目,原来是计算的时候补...
  • ——————— js 中对数值的格式化问题 对数字进行格式化输出,是非常有意义的一件事情,例如许多时候,我们希望一个数字能够输出为指定格式的字符串,拿26.9878来说,我们可能会希望它能保留两位小数来说出,即...
  • 这次给大家带来,的注意事项有哪些,下面就是实战案例,一起来看一下。 window.οnlοad=function(){ var... } } 数值1: 数值2: 相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章! 推荐阅读:
  • html数值计算计算

    千次阅读 2016-05-17 20:45:30
    这几天我编写了购物车,在数值计算上面出现了一些问题 第一个问题: 从后台传递过来的数值类型是double类型的数值,小数点后面出现了10位以上。例如 1476.6000000006 第二个问题: 从后台传递过来的数值,变成了...
  • SplineJS - 用于数值计算和数据绘图的 JavaScript 库。 代码还是有点乱,等它更高级,对它的内部结构有了更好的了解时,我会开始组织。 如果你想贡献,我可以使用 d3.js 集成的一些帮助,它仍然有点错误,可以...
  • 0.1+0.2=0.30000000000000004 所以 if( a+b==0.3 ) { alert ( "111" ); } 的结果绝对出乎意料之外。 永远不要测试某个特定的浮点数值。 ...
  • js文本数值自动计算

    2012-07-13 10:16:25
    文本框数值自动计算js脚本 简单易懂 <input type="text" name="num1" <input type="text" name="num2" <span id="number">0</span>
  • js中的数值计算和三角函数

    千次阅读 2016-12-18 00:09:01
    /** * 加法函数,用来得到精确的加法结果 * @param {Object} arg1 * @param {Object} arg2 */ function accAdd(arg1, arg2) { var r1 = deal(arg1); var r2 = deal(arg2); var m = Math.pow(10, Math.max(r1,...
  • js计算数值

    2018-08-21 09:31:00
    atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值 1 2 3 atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间) 1 2 3 ceil(x) 对一个数进行上舍入。 1 2 3 cos(x) 返回数的余弦...
  • javascript 对浮点数进行算数计算,特别是进行除法计算时,结果的位数非常大。为了控制结果位数,我们需要进行四舍五入,下面就是一个将结果精确到x位的函数,它的思想是先把原数的小数点右移x位,然后四舍五入,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,819
精华内容 35,127
关键字:

js数值计算