美文网首页
js将科学计数法转换为字符串

js将科学计数法转换为字符串

作者: Arya06 | 来源:发表于2018-08-31 18:22 被阅读0次

    今天在页面数据显示问题上遇到一个坑。在数值非常小的时候,比如0.0000000233,js会将这样的数值转换为科学记数法。

    const a = 0.0000000233;
    console.log(a);
    

    打印出来是这样,显示成了科学记数法


    menu.saveimg.savepath20180831170636.jpg

    研究了一下发现,js在数值小数点前面为0,小数点后十分位(包含十分位)之后连续零的个数大于等于6个的情况下会将数值自动转换为科学计数法。

    const a = 0.00001;
    const aa = 0.000001;
    const aaa = 0.0000001;
    console.log(a);
    console.log(aa);
    console.log(aaa);
    

    输出为:


    menu.saveimg.savepath20180831173306.jpg

    但是前端展示数据并不想让用户看到这样的数据形式。

    后来谷歌加百度搜索了一圈如何解决这个问题,发现了一个比较简单且骚气的操作,大概思路是这样:

    将其转换为字符串并判断转换的结果中有没有减号(科学技术法e后面的"-"),如果有的话先把转换出的值加1,变成1.xxxxxxxx,再从索引值为1的地方取值变成.xxxxxxx,最后在将"0"与值拼接起来。代码如下:

    const a = 0.00000001;
    let result = String(a);
    if (result.indexOf('-') >= 0) {
       result = '0' + String(Number(result) + 1).substr(1);
    }
    console.log(result);
    
    输出结果: menu.saveimg.savepath20180831182156.jpg

    相关文章

      网友评论

          本文标题:js将科学计数法转换为字符串

          本文链接:https://www.haomeiwen.com/subject/nvqewftx.html