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;
}
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn