数字

2021-02-25  本文已影响0人  岚平果

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 表示无穷大(溢出返回)

  1. 为什么 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
上一篇 下一篇

猜你喜欢

热点阅读