Skip to content

Integer和String间的相互转换 #16

@Liudongge

Description

@Liudongge

字符串转换为数字

  • 目录
  • 1.parseInt
  • 2.parseFloat
  • 3.Number
  1. parseInt(string, radix) 将字符串按照基数转化为整型
    参数string为去除头部空白的字符串。
    参数radix是转换时基数,如2(二进制)、8(八进制)、10(十进制)、16(十六进制)。
    如果将参数radix省略,则可能出现未知错误,因此推荐必填。
    parseInt不应作为字符串直接转为整型的通用方法,除非明确string和正常的radix,否则会出现许多非理想值。如:
    parseInt('12', 13) // 15
    parseInt("345", 2); // NaN
    parseInt('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
  1. parseFloat(string) 将字符串转换成浮点数
    参数string是去除头部空白的字符串,只识别数字型字符、正负号+-、科学计数的e和正负无穷Infinity。除此之外的字符会被无视掉。如:
    parseFloat('123.456abc') // 123.456
    parseFloat('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 
  1. 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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions