JavaScript将数据转换成整数的方法

  JavaScript提供将数值转成整数的方法parseInt,用于转换字符串数据“123”,或者浮点数1.23。

  

复制代码 代码如下:

  parseInt("1");  // 1

  parseInt("1.2");  // 1

  parseInt("-1.2");  // -1

  parseInt(1.2);  // 1

  parseInt(0);  // 0

  parseInt("0");  // 0

  但是这个parseInt函数不是经常有效:

  

复制代码 代码如下:

  parseInt('06'); // 6

  parseInt('08'); // 0  注意,谷歌新版已修正

  parseInt("1g"); // 1

  parseInt("g1"); // NaN

  为此,我写了一个函数将任意数据转换成整数。

  

复制代码 代码如下:

  function toInt(number) {

  return number*1 | 0 || 0;

  }

  //test

  toInt("1");  // 1

  toInt("1.2");  // 1

  toInt("-1.2");  // -1

  toInt(1.2);  // 1

  toInt(0);  // 0

  toInt("0");  // 0

  toInt(Number.NaN);  // 0

  toInt(1/0);  // 0

  这里还有网友写的转换函数,也记下来提供参考,同样适合将数据转换成整数。

  

复制代码 代码如下:

  function toInt(number) {

  return number && + number | 0 || 0;

  }

  注意了,以上两个函数js能表示的整数有效范围是 -1569325056 ~ 1569325056

  为了在js中表达更大范围的数值,我还写了一个函数提供参考,如下:

  

复制代码 代码如下:

  function toInt(number) {

  return Infinity === number ? 0 : (number*1 || 0).toFixed(0)*1;

  }