您的位置:首页 > Web前端 > JavaScript

Javascript - Math 对象 - 某个数字区域之间的随机数(精确度:小数点后两位)toFixed方法原生JS实现

2017-12-12 18:03 741 查看
 function box(start,end) {

var total = end - start;

document.write(Math.round((Math.random()*total + start)*100)/100 + "<br>");

}

box(1,10);

function box1(start,end) {

var total = end - start;

document.write((Math.random()*total + start).toFixed(2) + "<br>");

}

box1(1,10);

类似toFixed方法:

//创建浮点数精度2位的函数

function floatToTwo(x) {

    // 将参数转化为浮点数并赋值给f_x

    var f_x = parseFloat(x);

    //判断参数是否为数字

    if (isNaN(x)) {

      alert("please input number!");

      return false;

    }

    // 运用Math函数生成随机数并赋值给f_x

    var f_x = Math.round(f_x*100)/100;

    // 如果精度没有后两位,需在整数后面加小数点加0

    //把f_x设置为String对象

    var s_x = f_x.toString();

    //计算小数点在字符串s_x中的位置,并赋值给pos_decimal

    var pos_decimal = s_x.indexOf(".");

    //判断是否存在小数点

    if (pos_decimal < 0) {

      // 不存在小数点则把整数的长度赋值给pos_decimal

      pos_decimal = s_x.length;

      //在字符串整数s_x后面加点//必须先赋值再加.以便下面while判断时条件和存在小数点的条件一致

      s_x += '.';

    }

    // 条件:当字符串的长度小于等于字符串长度加上小数点后一位的长度时(s_x的长度因为加.之后所以大于赋值.之前的pos_decimal一位)给字符串加上0

    while (s_x.length <= pos_decimal + 2) {

      s_x += '0';

    }

    return s_x;

}

document.write(floatToTwo(111));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: