为了账号安全,请及时绑定邮箱和手机立即绑定

关于js数字转换字符串的一个问题

关于js数字转换字符串的一个问题

梦里花落0921 2019-02-12 17:17:06
比如:var num  = 0.00;//如何在知道变量num含有小数点的情况下,转换为字符串保留后2位,而不是通过Fixed(2)                //强行保留2位小数。                //尝试过   num+""  ,也不行,返回一个number类型0可能我的意思是,如果变量是0.0000,这样的数字型的变量也可以自动转换成"0.0000",这样的话,就不能把Fixed()中的参数写死,而且也不能根据字符串加".0000",其实核心问题就是把浮点数最后位全部为0000的保留下来为字符串。。。有点奇葩。。如果想通过Fixed(num的长度),这种也是不行的,因为通过字符串话的num,已经失去了小数位和小数的长度了,,,,,,
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

function demo (num) {    

    num = (num.toString()).match(/(\d+\.\d{0,2})|(\d+)/)[0];    

    if(!/\./.test(num)) {

        num = num + '.00';

    }else if(/\.\d{1}$/.test(num)){

        num = num + '0';

    }    

    return num;

}


console.log(demo(6))      //6.00

console.log(demo(6.0))    //6.00

console.log(demo(6.1))    //6.10

console.log(demo(6.21))   //6.21

console.log(demo(6.333))  //6.33

console.log(demo(0))      //0.00

console.log(demo(0.1))    //0.10

console.log(demo(0.01))   //0.01

console.log(demo(0.001))  //0.00


查看完整回答
反对 回复 2019-02-23
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

你的意思是当有小数点的时候保留2位,没有的时候就不要显示有小数点?如果是这样的话可以试试这个:


var a = 9;

var b = 9.258;


function demo(num) {

    var reg = /\./g; //查看是否存在小数点

    if(reg.test(num)) { //若存在,则保留两位小数,倒是不用考虑是否用toFixed,因为这个挺好用的

        return num.toFixed(2);

    } else {//不存在,返回原值

        return num;

    }

}

console.log(demo(a)); //9

console.log(demo(b)); //9.26


查看完整回答
反对 回复 2019-02-23
  • 2 回答
  • 0 关注
  • 970 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信