猿问

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

比如:


var num  = 0.00;//如何在知道变量num含有小数点的情况下,转换为字符串保留后2位,而不是通过Fixed(2)

                //强行保留2位小数。

                //尝试过   num+""  ,也不行,返回一个number类型0

可能我的意思是,如果变量是0.0000,这样的数字型的变量也可以自动转换成"0.0000",这样的话,就不能把Fixed()中的参数写死,而且也不能根据字符串加".0000",其实核心问题就是把浮点数最后位全部为0000的保留下来为字符串。。。有点奇葩。。


如果想通过Fixed(num的长度),这种也是不行的,因为通过字符串话的num,已经失去了小数位和小数的长度了,,,,,,


梦里花落0921
浏览 1053回答 2
2回答

呼唤远方

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.00console.log(demo(6.0))    //6.00console.log(demo(6.1))    //6.10console.log(demo(6.21))   //6.21console.log(demo(6.333))  //6.33console.log(demo(0))      //0.00console.log(demo(0.1))    //0.10console.log(demo(0.01))   //0.01console.log(demo(0.001))  //0.00

慕码人8056858

你的意思是当有小数点的时候保留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)); //9console.log(demo(b)); //9.26
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答