js如何对小数进行处理(显示精度或者科学计数法)
对数字进行格式化输出,是日常开发中经常发生的一件事情,例如0.000000324,直接在页面中书写原始数据太占地方,我们会希望按照科学计数法来显示这个数字,既结果为3.24e-7。
这里就想问一句在Javascript标准之中,是否提供了对这些格式化输出的支持呢?
可以说Javascript也提供了部分支持,但是提供的并部完善,具体你可以看一下Number对象的使用,里面提供了对数字的一些格式化输出,几个函数如下:
方法 | 描述 |
---|---|
toString | 把数字转换为字符串,使用指定的基数 |
toLocaleString | 把数字转换为字符串,使用本地数字格式顺序 |
toFixed | 把数字转换为字符串,结果的小数点后有指定位数的数字 |
toExponential | 把对象的值转换为指数计数法 |
toPrecision | 把数字格式化为指定的长度 |
valueOf | 返回一个Number对象的基本数字值 |
var num=56.45678;
var rs1=num.toExponential(2);//rs1的值为5.65e+1
//将数字按科学计数法格式返回,其中2的值小数点后保留的位数。
var rs2=num.toFixed(2);//rs的值为56.45
//将数字按指定的小数点位数返回,其中2的值小数点后保留的位数。
var rs3=num.toPrecision(2);//rs的值为56
//将数字按指定的精度返回(这个精度不是指小数点后几位),其中2是指定的精度值。
虽然说Number对象提供的这些方法能够解决不少的数字转化问题,但是对于许多情况还是不好满足的,例如对百分号的支持等等.但是我们可以对其叠加其他方法从而达到某种效果
var rs4 = (Math.round(num * 10000)/100).toFixed(2) + '%'