js操作数值

59 阅读1分钟

Date: 2017-04-19

经常需要用到js来操作数值,如取整、精确小数点后面的位数等等

取浮点数

parseFloat('123.45') = 123.45

parseFloat('123.45abc') = 123.45

parseFloat('abc 123.45') = NaN

parseFloat(true) = NaN

对象转换成数字

Number(true) = 1

Number(false) = 0

Number(new Date()) = 1491972682647

Number('999') = 999

Number('999 888') = NaN

取整

  • 将字符串或浮点数开头的整数提取出来

    parseInt(123) = 123
    
    parseInt(123.45) = 123
    
    parseInt(123.45abc) = 123 // error:Invalid or unexpected token
    
    parseInt('123') = 123
    
    parseInt('123.45') = 123
    
    parseInt('123,,45') = 123
    
    parseInt('123.45abc') = 123
    
    parseInt(true) = NaN
    
  • 四舍五入

    // 四舍
    Math.round(5 / 4) = 1
    
    // 五入
    Math.round(5 / 2) = 3
    
  • 向上取整(有小数就+1)

    Math.ceil(5 / 2) = 3
    
  • 丢弃小数

    Math.floor(5 / 2) = 2
    

精确到小数点后两位

  • 四舍五入型

    // 四舍
    var a = 123.451789
    (a / 100).toFixed(2) = '123.45'
    
    // 五入
    var a = 123.456789
    (a / 100).toFixed(2) = '123.46'
    
    // 建议增加零判断(00.00 = 0):
    var a = 123.456789
    parseFloat(a / 100).toFixed(2) == 0 ? 0 : (a / 100).toFixed(2)
    
  • 全舍型

    var a = 123.456789
    Math.floor(a * 100) / 100
    // 无需增加零判断
    
  • 全入型

    var a = 123.456789
    Math.ceil(a * 100) / 100
    // 无需增加零判断