首页 新闻 会员 周边 捐助

js前端,找个大神帮帮忙,谢谢了

0
悬赏园豆:200 [已解决问题] 解决于 2021-01-25 16:46

给Math函数设置一个类方法
传入该方法的参数为数字几,就产生对应个数的四位数小数 禁止用toFixed方法,这个怎么写呀,在线等,挺急的

正在缓冲99.9%的主页 正在缓冲99.9% | 初学一级 | 园豆:2
提问于:2021-01-24 19:44
< >
分享
最佳答案
1

//例:15.7784514321 ,保留6位小数后值为15.778451
console.log(GetFloat(15.7784514000, 6))

    //num1:数据
    //num2:保留几位小数(不四舍五入)
    function GetFloat(num1, num2) {

        var nn = 0;
        if (num2 == 1) nn = 10;
        else if (num2 == 2) nn = 100;
        else if (num2 == 3) nn = 1000;
        else if (num2 == 4) nn = 10000;
        else if (num2 == 5) nn = 100000;
        else if (num2 == 6) nn = 1000000;
        else if (num2 == 7) nn = 10000000;
        return Math.floor(num1 * nn) / nn; // 输出
    }
收获园豆:200
熊泽-学习中的苦与乐 | 老鸟四级 |园豆:2272 | 2021-01-25 11:24

谢谢了

正在缓冲99.9% | 园豆:2 (初学一级) | 2021-01-25 16:45
其他回答(2)
0

可以用先乘再除撒,比如传入1/3,保留4位小数,即parseInt(1/3*10000) / 10000 = 0.3333

qiuxd | 园豆:209 (菜鸟二级) | 2021-01-24 22:03
0

parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )

你可以自己封装一个toFixed方法,

就是toFixed方法也有精度丢失的问题

不知道风往哪儿吹 | 园豆:2037 (老鸟四级) | 2021-01-25 09:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册