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

今天在页面数据显示问题上遇到一个坑。在数值非常小的时候,比如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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,199评论 0 13
  • 什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script...
    oWSQo阅读 1,818评论 0 1
  • 一枕东风 醉卧一枕东风 行走于如画的江南 那年青桥雨下 见你如娇的身姿 为你打一折雨伞 弹落滴滴...
    陈汐年阅读 934评论 20 18
  • 最近总是莫名的恐慌,觉得时间流逝太快,抓不住,抓不住了! 有大把青春挥霍的时候,觉得时间很多岁月很长,未来无限明朗...
    Dr灬Francis阅读 558评论 0 0
  • 闭上眼想想,当你把球带到禁区随随便便往空中一扔,便有队友拍马杀到大力扣篮,那是何等酷爽!12年的快船,向世界完美诠...
    薯条屁孩阅读 831评论 2 1