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"/> 除 数:<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写个。