Javascript的Number对象方法小记

Author : lovecicy

数字是JS的基本数据类型之一,而与之对应的Number类则是其包装对象,提供了一些实用的方法,下面就来看看这些方法。

一、toFixed

语法:NumberObject.toFixed(num)

参数:
num 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

返回值:
返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。

toFixed方法可以将数字转化为字符串,并且带有指定的小数位数。这个方法很实用,比如我们又这样一个数据:0.12086968544041654,我们仅需要精确到小数点后四位,这时候就可以使用toFixed方法了:

0.12086968544041654.toFixed(4);

它进行4舍5入,返回0.1209。

如果有这样一个数据:0.12,同样精确到小数点后4位,那么会在0.12后添加两个0,返回0.1200。

二、toExponential

语法:NumberObject.toExponential(num)

参数:
num 必需。规定指数计数法中的小数位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将使用尽可能多的数字。

返回值:
返回 NumberObject 的字符串表示,采用指数计数法,即小数点之前有一位数字,小数点之后有 num 位数字。该数字的小数部分将被舍入,必要时用 0 补足,以便它达到指定的长度。

个人感觉这个方法相对不那么实用,只是将数字表示成科学计数法而已。

三、toPrecision

语法:NumberObject.toPrecision(num)

参数:
num 必需。规定必须被转换为指数计数法的最小位数。该参数是 1 ~ 21 之间(且包括 1 和 21)的值。有效实现允许有选择地支持更大或更小的 num。如果省略了该参数,则调用方法 toString(),而不是把数字转换成十进制的值。

返回值:
返回 NumberObject 的字符串表示,包含 num 个有效数字。如果 num 足够大,能够包括 NumberObject 整数部分的所有数字,那么返回的字符串将采用定点计数法。否则,采用指数计数法,即小数点前有一位数字,小数点后有 num-1 位数字。必要时,该数字会被舍入或用 0 补足。

toPrecision方法比之前两个稍微复杂一点,基本可以分为3种情况:

0.12086968544041654.toPrecision(8): "0.12086969"
12.0987.toPrecision(8): "12.098700"
12086968544041654.3.toPrecision(8): "1.2086969e+16"

第一、二种情况,num值比数字的整数部分位数长,则直接显示,小数位四舍五入或者用0补足。第三种情况如果整数部分位数比num大,则采用科学计数法。

standard

Have your say