numObj.toExponential(fractionDigits)
Number.prototype.toExponential()
方法以指数
表示法返回该数值字符串
表示形式。
对数值字面量
使用 toExponential()
方法,且该数值没有小数点
和指数
时,应该在该数值
与该方法之间隔开一个空格
,以避免点号
被解释为一个小数点
。
也可以使用两个点号
调用该方法。
fractionDigits
是一个可选参数。一个整数,用来指定小数点后有几位数字。
默认情况下用尽可能多的位数来显示数字
。
如果该参数
是一个非整数值
,将会向下舍入到最接近的整数
。
如果 fractionDigits
参数被忽略了,小数点
后的将尽可能用最多的
位数`来表示该数值。
一个用幂
的形式 (科学记数法
) 来表示Number
对象的字符串。
小数点
后以fractionDigits
提供的值来四舍五入
。
如果一个数值的小数位数
多于 fractionDigits
参数所提供的,则该数值将会在 fractionDigits
指定的小数位数处四舍五入
。
查看 Number.prototype.toFixed() 方法关于四舍五入
的讨论,同样应用于 toExponential()
方法。
如果 fractionDigits
太小或太大将会抛出该错误。介于 1
和 100
(包括边界值)之间的值不会引起 RangeError
。
执行环境也可以支持更大
或更小
范围。
如果该方法在一个非数值类型
对象上调用。
(() => {
const { log } = console;
const numObj = 77.1234;
log('numObj.toExponential() is ' + numObj.toExponential()); //numObj.toExponential() is 7.71234e+1
log('numObj.toExponential(4) is ' + numObj.toExponential(4)); //numObj.toExponential(4) is 7.7123e+1
log('numObj.toExponential(2) is ' + numObj.toExponential(2)); //numObj.toExponential(2) is 7.71e+1
log('77.1234.toExponential() is ' + 77.1234.toExponential()); //77.1234.toExponential() is 7.71234e+1
log('77 .toExponential() is ' + 77 .toExponential()); //77 .toExponential() is 7.7e+1
log('77 .toExponential(101) is ' + 77 .toExponential(101)); //Uncaught RangeError: toExponential() argument must be between 0 and 100
})()
numObj.toPrecision(precision)
Number.prototype.toPrecision()
方法以指定的精度
返回该数值
对象的字符串
表示。
对数值字面量
使用 toPrecision()
方法,且该数值没有小数点
和指数
时,应该在该数值
与该方法之间隔开一个空格
,以避免点号
被解释为一个小数点
。
也可以使用两个点号
调用该方法。
precision
是一个可选参数。用来指定有效数个数
的整数
。
如果忽略 precision
参数,则该方法表现类似于 Number.prototype.toString()。
如果该参数
是一个非整数值
,将会向下舍入到最接近的整数
。
以定点表示法
或指数表示法
表示的一个数值对象的字符串
表示,四舍五入
到 precision
参数指定的显示数字位数。
查看 Number.prototype.toFixed() 方法关于四舍五入
的讨论,同样应用于 toPrecision()
方法。
如果 precison
参数不在 1
和 100
(包括边界值)之间,将会抛出一个 RangeError
。
执行环境也可以支持更大
或更小
的范围。ECMA-262
只需要最多 21
位显示数字。
如果该方法在一个非数值类型
对象上调用。
(() => {
const { log } = console;
const numObj = 5.123456;
log('numObj.toPrecision() is ' + numObj.toPrecision()); // numObj.toPrecision() is 5.123456
log('numObj.toPrecision(5) is ' + numObj.toPrecision(5)); // numObj.toPrecision(5) is 5.1235
log('numObj.toPrecision(2) is ' + numObj.toPrecision(2)); // numObj.toPrecision(2) is 5.1
log('numObj.toPrecision(1) is ' + numObj.toPrecision(1)); // numObj.toPrecision(1) is 5
// 注意:在某些情况下会以指数表示法返回
log((1234.5).toPrecision(2)); // '1.2e+3'
log(123 .toPrecision(101));// Uncaught RangeError: toPrecision() argument must be between 1 and 100
})()