1. 数字方法
1.toString() 数字转字符串
var x = 123;
x.toString()
2. oExponential()
返回字符串值,它包含已被四舍五入并使用指数计数法的数字。参数定义小数点后的字符数.
var x = 9.656;
x.toExponential(2); // 返回 9.66e+0
x.toExponential(4); // 返回 9.6560e+0
x.toExponential(6); // 返回 9.656000e+0
3. toFixed()
toFixed() 返回字符串值,它包含了指定位数小数的数字:
var x = 9.656;
x.toFixed(0); // 返回 10
x.toFixed(2); // 返回 9.66
x.toFixed(4); // 返回 9.6560
x.toFixed(6); // 返回 9.656000
4.toPrecision()
返回字符串值,它包含了指定长度的数字
var x = 9.656;
x.toPrecision(); // 返回 9.656
x.toPrecision(2); // 返回 9.7
x.toPrecision(4); // 返回 9.656
x.toPrecision(6); // 返回 9.65600
5.valueOf()
valueOf() 以数值返回数值:
var x = 123;
x.valueOf(); // 从变量 x 返回 123
2. 把变量转换为数值
Number() 方法
parseInt() 将字符串格式化为整数。
parseFloat() 方法, 并返回带有其十进制值的数字。
这些方法并非数字方法,而是全局 JavaScript 方法。
MAX_VALUE 返回 JavaScript 中可能的最大数。
MIN_VALUE 返回 JavaScript 中可能的最小数。
NEGATIVE_INFINITY 表示负的无穷大(溢出返回)。
NaN 表示非数字值(“Not-a-Number”)。
POSITIVE_INFINITY 表示无穷大(溢出返回)
- 为什么 js 中 0.1+0.2 不等于 0.3,怎样处理使之相等?
console.log(0.1+0.2===0.3) // true or false??
在正常的数学逻辑思维中,0.1+0.2 = 0.3 这个逻辑是正确的,但是在 JavaScript 中0.1+0.2!== 0.3,
这是为什么呢?这个问题也会偶尔被用来当做面试题来考查面试者对 JavaScript 的数值的理解程度。
在 JavaScript 中的二进制的浮点数 0.1 和 0.2 并不是十分精确,在他们相加的结果并非正好等于 0.3,
而是一个比较接近的数字 0.30000000000000004 ,所以条件判断结果为 false。
那么应该怎样来解决 0.1+0.2 等于 0.3 呢? 最好的方法是设置一个误差范围值,通常称为”机器精度“,
而对于 Javascript 来说,这个值通常是 2^-52,而在 ES6 中,已经为我们提供了这样一个
属性:Number.EPSILON,而这个值正等于 2^-52。
这个值非常非常小,在底层计算机已经帮我们运算好,并且无限接近 0,但不等于
0,。这个时候我们只要判断
(0.1+0.2) - 0.3 小于 Number.EPSILON,在这个误差的范围内就可以判定0.1+0.2 === 0.3 为 true。
function numbersequal(a,b){ return Math.abs(a-b)<Number.EPSILON;
}
var a=0.1+0.2, b=0.3;
console.log(numbersequal(a,b)); //true
网友评论