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

 function box(start,end) {

var total = end - start;

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

}

box(1,10);


function box1(start,end) {

var total = end - start;

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

}

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));

你可能感兴趣的:(JS)