你不知道的 JavaScript 系列中, 7 -数字

JS 中的数字常量一般用十进制表示

var a = 42;
var b = 42.3

数字前面的 0 可以省略

var a = 0.42
var b = .42

小数点后小数部分最后面的 0 也可以省略

var a = 42.0;
var b = 42.;

特别大和特别小的数字默认用指数格式显示,与 toExponential() 函数的输出结果相同

var a = 5E10;
a; // 50000000000
a.toExponential(); // 5e+10

var b = a * a;
b; // 2.5e+21

var c = 1 / a;
c; // 2e-11

toPrecision(...) 方法用来指定有效数位的显示位数

var a = 42.59;
a.toPrecision(1); // 4e+1
a.toPrecision(2); // 43
a.toPrecision(3); // 42.6
a.toPrecision(4); // 42.59
a.toPrecision(5); // 42.590
a.toPrecision(6); // 42.5900

toFixed() 方法可指定小数部分的显示位数

var a = 42.59;
a.toFixed(0); // 43
a.toFixed(1); // 42.6
a.toFixed(2); // 42.59
a.toFixed(3); // 42.590
a.toFixed(4); // 42.5900

上述方法不仅适用于数字变量,也适用于数字常量

42.toFixed(3); // SyntaxError,无效语法

42..toFixed(3); // "42.000"
(42).toFixed(3); // "42.000"
42 .toFixed(3); // "42.000"
0.42.toFixed(3); // "0.420"

42.toFixed(3)是无效语法,因为 . 被视为常量 42. 的一部分,所以没有调用。42..toFixed(3) 则没有问题。0.42.toFixed(3) 在基本类型值上直接调用的方法并不多见,不过这并不代表不好或不对。42 .toFixed(3)是有效的,注意其中的空格,这样的语法很容易引起误会,不建议使用