其他分享
首页 > 其他分享> > 山东标梵js效果和 加减乘除计算 (防止精度丢失)

山东标梵js效果和 加减乘除计算 (防止精度丢失)

作者:互联网

在我们开发中,有时候不需要后端去计算东西,前端直接计算,这个时候如果使用js去直接计算整数还可以,不过如果计算小数可能造成丢失精度,下面是在遇到计算场景中使用的方法。分享一下!希望有所帮助!

两个浮点求和:

// 两个浮点数求和
    function accAdd(num1,num2){
       var r1,r2,m;
       try{
           r1 = num1.toString().split('.')[1].length;
       }catch(e){
           r1 = 0;
       }
       try{
           r2=num2.toString().split(".")[1].length;
       }catch(e){
           r2=0;
       }
       m=Math.pow(10,Math.max(r1,r2));
       // return (num1*m+num2*m)/m;
       return Math.round(num1*m+num2*m)/m;
    }

两个浮点求差:
// 两个浮点数相减
    function accSub(num1,num2){
       var r1,r2,m;
       try{
           r1 = num1.toString().split('.')[1].length;
       }catch(e){
           r1 = 0;
       }
       try{
           r2=num2.toString().split(".")[1].length;
       }catch(e){
           r2=0;
       }
       m=Math.pow(10,Math.max(r1,r2));
       n=(r1>=r2)?r1:r2;
       return (Math.round(num1*m-num2*m)/m).toFixed(n);
    }
两个浮点相除:
// 两个浮点数相除
    function accDiv(num1,num2){
       var t1,t2,r1,r2;
       try{
           t1 = num1.toString().split('.')[1].length;
       }catch(e){
           t1 = 0;
       }
       try{
           t2=num2.toString().split(".")[1].length;
       }catch(e){
           t2=0;
       }
       r1=Number(num1.toString().replace(".",""));
       r2=Number(num2.toString().replace(".",""));
       return (r1/r2)*Math.pow(10,t2-t1);
    }

两个浮点相乘:
  // 两个浮点数相乘
function accMul(num1,num2){
    var m=0,s1=num1.toString(),s2=num2.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);
    }

这里在分享一个前端博客常用的动态效果

点线粒子

可根据自己需求去调节粒子多少。
参数说明:

color="255,0,0"  背景粒子线的颜色

opacity="0.5"  背景粒子线的透明度,一般设置成0.5-1之间

count="99"    背景粒子线的密度,建议不要太大,否则页面容易卡死

❞
<scripttype="text/javascript"color="255,0,0"opacity="0.5"count="99"src="canvas-nest.js"></script>
点击效果
<script src="https://files.cnblogs.com/files/wkfvawl/mouse-click.js"></script>
<canvas width="1777" height="841" style="position: fixed; left: 0px; top: 0px; z-index: 2147483647; pointer-events: none;"></canvas>
<script type="text/javascript">
/* 鼠标特效 */
var a_idx = 0;
jQuery(document).ready(function($) {
    $("body").click(function(e) {
        var a = new Array("❤富强❤","❤民主❤","❤文明❤","❤和谐❤","❤自由❤","❤平等❤","❤公正❤","❤法治❤","❤爱国❤","❤敬业❤","❤诚信❤","❤友善❤","❤欢迎关注我微信公众号“秦川以北”我是秦萧冷❤");
        var $i = $("<span></span>").text(a[a_idx]);
        a_idx = (a_idx + 1) % a.length;
        var x = e.pageX,
        y = e.pageY;
        $i.css({
            "z-index": 999999999999999999999999999999999999999999999999999999999999999999999,
            "top": y - 20,
            "left": x,
            "position": "absolute",
            "font-weight": "bold",
            "color": "rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"
        });
        $("body").append($i);
        $i.animate({
            "top": y - 180,
            "opacity": 0
        },
        1500,
        function() {
            $i.remove();
        });
    });
});
</script>

文章来源:秦川以北 微信公众号
文章编辑:标梵互动

标签:标梵,num1,r2,js,r1,toString,num2,Math,加减乘除
来源: https://blog.csdn.net/weixin_42317619/article/details/110824442