JS中的MOD运算

最近研究汉诺塔非递归的时候,看到书上写了个MOD,久违啊,感觉好久没看到过了,都忘了怎么用了。

某人:我知道,这不就是取余嘛,直接%就行了。

嗯。。。。。。,如果是python语言,你说的很对,但是我要的是JS中的。搜了下,貌似JS中没有MOD方法。便于学习的使用,自己写了个。

废话不多说,直接上代码。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>MOD运算</title>
    </head>
    <body>

        被除数:<input type="text" id="bcs"/>
        除&emsp;数:<input type="text" id="cs"/>
        结果:<span id="jg"></span>
        <input type="button" value="MOD运算" onclick="modys()" />

        <script>

            function modys(){
                var bcs = Number(document.getElementById("bcs").value);
                var cs = Number(document.getElementById("cs").value);
                if(cs == 0){
                    alert("除数不能为0");
                    return;
                }
                if((bcs < 0 && cs < 0) || (bcs >=0 && cs >= 0)){    //同号
                    if(parseInt(bcs) == bcs && parseInt(cs) == cs){        //全为整数
                        var jg = bcs%cs;
                        document.getElementById("jg").innerHTML = jg;
                    }else{
                        /**
                         *     被除数-(整商×除数)之后在第一位小数位进行四舍五入。
                         */
                        var jg = (bcs - (Math.floor(bcs/cs) * cs)).toFixed(1);
                        document.getElementById("jg").innerHTML = jg;
                    }
                }else{        //异号
                    /**
                     *
                     * 除数*(正整数商 + 1)- 正数的被除数   ,最后取除数的符号。
                     */
                    var zbcs = Math.abs(bcs);        //绝对值
                    var zcs = Math.abs(cs);            //绝对值
                    var jg = Math.abs(Math.abs(cs) * (Math.floor(zbcs/zcs) + 1) - Math.abs(bcs));
                    if(cs < 0){
                        jg = -jg
                    }
                    document.getElementById("jg").innerHTML = jg;
                }
            }
        </script>
    </body>
</html>

注:1.没有深度思考,按照百度百科的MOD运算介绍写的,有错误请指出,谢谢。

  2.对于小数没有精确运算,可以自己用math.js写个。

原文地址:https://www.cnblogs.com/bpjj/p/10950764.html

时间: 2024-11-07 15:51:57

JS中的MOD运算的相关文章

js中神奇的运算

先看一段比较神奇的运算和他的结果: {}+[] //0 []+{} //"[object Object]" {}+[] == []+{} //false ({}+[]) == []+{} //true 运算结果不一样,很神奇啊... 我们来看一下js中对Object和Array直接执行运算时会发生什么.由于数组不是一个基本类型,所以在运算过程中,js会尝试将array或object转化成一个基本类型. 在这个转化中,首先会对Array执行一个valueOf函数,如果返回时是基本类型,那

js中的浮点数运算精度问题

js中的浮点数精度一般可以达到16位有效数字,因此有人使用parseFloat(x.toFixed(12))来提高js中浮点运算的精度. 经验证,这种方法当整数位数较少时基本正确,但对于较大或较小的运算结果是无效的,如1222.31*2344,直接运算结果是2865094.6399999997,parseFloat((1222.31*2344).toFixed(12))后仍然是2865094.6399999997,并未提升精度. 此时,应该先将结果归一化后再进行toFixed(12)这样的处理,

深入研究js中的位运算及用法

什么是位运算? 位运算是在数字底层(即表示数字的 32 个数位)进行运算的.由于位运算是低级的运算操作,所以速度往往也是最快的(相对其它运算如加减乘除来说),并且借助位运算有时我们还能实现更简单的程序逻辑,缺点是很不直观,许多场合不能够使用. 位运算只对整数起作用,如果一个运算子不是整数,会自动转为整数后再运行.虽然在 JavaScript 内部,数值都是以64位浮点数的形式储存,但是做位运算的时候,是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数. 关于二进制 ==以下来

JS中的短路运算[转]

在逻辑运算中,转换为boolean类型的值后为false的情况: 0."".null.false.undefined.NaN,其他都为true. 1.  && 找假  结果==> 总结:    &&是找假 (先看第一个表达式的值,如果第一个表达式不是boolean类型,会先将此值隐式转换,转成boolean的值) 如果第一个数转换后的值为false,则直接返第一个数, 不管第二个数是真还是假:    如果第一个数转换后的值为true,则直接返回第二

js中的位运算

按位运算符是把操作数看作一系列单独的位,而不是一个数字值.所以在这之前,不得不提到什么是“位”:数值或字符在内存内都是被存储为0和1的序列,每个0和1被称之为1个位,比如说10进制数据2在计算机内被存储为 0 0 0 0 0 0 1 0,当我们将内存内的位值改变之后,这个值代表的意义也就变了,比如把2前移动一位, 现在存储单元里面变成了0 0 0 0 0 1 0 0,这个值表示的是十进制的4,这也就是按位操作符的运算原理. 按位运算符有6个& 按位与|按位或^按位异或~取反>>右移&l

JS中的短路运算

在逻辑运算中,转换为boolean类型的值后为false的情况: 0."".null.false.undefined.NaN,其他都为true. 1.  && 找假  结果==> 总结:    &&是找假 (先看第一个表达式的值,如果第一个表达式不是boolean类型,会先将此值隐式转换,转成boolean的值) 如果第一个数转换后的值为false,则直接返第一个数, 不管第二个数是真还是假:    如果第一个数转换后的值为true,则直接返回第二

js中位运算的运用

原文:js中位运算的运用 我们可能很少在编程中用位运算,如果没深入学习,可能也很难理解.平时的数值运算,其实是要先转换成二进制再进行运算的,而位运算就是直接进行二进制运算,所以位运算的执行效率肯定是更高的.下面通过一些实例来加深对位运算的理解. 按位与(&) &&运算符我们都知道,只有两个都为真,结果才为真.&道理是一样的,只有两个数的值为1时,才返回1.例如1和3的按位与操作: 0001 & 0011 --------- 0001 只有对应的数为1时,结果才为1,

js中的==运算: [&#39;&#39;] == false —&gt;true

图1 计算下面表达式的值: [''] == false 首先,两个操作数分别是对象类型.布尔类型.根据图1,需要将布尔类型转为数字类型,而false转为数字的结果是0,所以表达式变为: [''] == 0 两个操作数变成了对象类型.数字类型.根据图1,需要将对象类型转为原始类型: 首先调用[].valueOf(),由于数组的valueOf()方法返回自身,所以结果不是原始类型,继续调用[].toString(). 对于数组来说,toString()方法的算法,是将每个元素都转为字符串类型,然后用

JS中delete运算

var a={x:1,y:2,z:3}; var b=[1,2,3]; delete a.x; delete b[0]; $("p").text(1 in b); alert(0 in b);// false角标为0的元素已经被删除了 alert("x" in a);// false x已经被删除 console.log(typeof(a.x));//undefined console.log(typeof(a.y));//number alert(b.length