-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
字符串转换为数字
- 目录
- 1.parseInt
- 2.parseFloat
- 3.Number
- parseInt(string, radix) 将字符串按照基数转化为整型
参数string为去除头部空白的字符串。
参数radix是转换时基数,如2(二进制)、8(八进制)、10(十进制)、16(十六进制)。
如果将参数radix省略,则可能出现未知错误,因此推荐必填。
parseInt不应作为字符串直接转为整型的通用方法,除非明确string和正常的radix,否则会出现许多非理想值。如:parseInt('12', 13) // 15parseInt("345", 2); // NaNparseInt('120', 2) // 1
// 一个严格的整型转换函数
const convertInt = value => {
if (/^(\-|\+)?([0-9]+|Infinity)$/.test(vaule))
return Number(value)
return NaN
}
console.log(convertInt('123.456')) // 123
console.log(convertInt('123.abc')) // NaN
console.log(convertInt('-666')) // -666
- parseFloat(string) 将字符串转换成浮点数
参数string是去除头部空白的字符串,只识别数字型字符、正负号+-、科学计数的e和正负无穷Infinity。除此之外的字符会被无视掉。如:
parseFloat('123.456abc') // 123.456parseFloat('a1b2c3') // NaN
// 一个严格的浮点数转换函数
const convertFloat = value => {
if (/^(\-|\+)?|(\.\d+)(\d+(\.\d+)?|(\d+\.)?|(Infinity))$/.test(value))
return Number(value)
return NaN
}
console.log(convertFloat('123e+1')) // 1230
console.log(convertFloat('123 456')) // NaN
console.log(convertFloat('123.')) // 123
console.log(convertFloat('.123')) // 0.123
- Number(object) 将对象转换为数字值
如果object为时间对象,则返回从 1970 年 1 月 1 日到时间节点的毫秒数
如果object为字符串,则返回对应数字值,如:
Number("123") // 123
Number("") // 0
Number("0x11") // 17
Number("0b11") // 3
Number("0o11") // 9
Number("abc") // NaN
Number("123abc") // NaN
Metadata
Metadata
Assignees
Labels
No labels