丢弃小数部分,保留整数部分
parseInt(7/2)
2.向上取整,有小数就整数部分加1
Math.ceil(7/2)
3,四舍五入.
Math.round(7/2)
4,向下取整
Math.floor(7/2)
parseInt是用于将字符串根据基数转换成整数。首先parseInt()函数中可以给定两个参数,第一个是要解析的数,第二个是以多少进制解析。
例如parseInt(‘10’,8)的意思为把一个8进制数10,转换成一个10进制数,最后结果当然为8.
接着我们再看个例子,parseInt(‘100’,8),把一个8进制数100,转换成一个10进制数,最后结果那便是64,记住parseInt把最后结果都是转换成10进制数。
最后再看个例子,parseInt(‘12’,2)把一个二进制数12,转换成一个10进制数,因为二进制数中不存在2,因此解析时仅仅只解析数字1,将二进制的1换成十进制,结果显然就是1.
V8中parseInt函数的源码:【只列出一部分,如需要查看请参见V8中src/conversions-inl.h和src/compiler/js-builtin-reducer.cc】
if (radix == 0) { //如果传入radix是0,则以10进行处理
// Radix detection.
radix = 10
if (*current == '0') {
++current
if (current == end) return SignedZero(negative)
if (*current == 'x' || *current == 'X') {
radix = 16
++current
if (current == end) return JunkStringValue()
} else {
leading_zero = true
}
}
} else if (radix == 16) { //16进制
if (*current == '0') {
// Allow "0x" prefix.
++current
if (current == end) return SignedZero(negative)
if (*current == 'x' || *current == 'X') {
++current
if (current == end) return JunkStringValue()
} else {
leading_zero = true
}
}
}
if (radix <2 || radix >36) return JunkStringValue()//radix不在2~36之间的处理
例如解析:
parseInt('0101' , 1) =>NaN
parseInt('453' , 2) =>NaN因为453不符合二进制数字,所以无法转换出正确的数字
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)