js中的数字

JavaScript013

js中的数字,第1张

    /*  

    1.js中只有一种数据类型

    2.js中的整数会被精确到15位(如果不使用科学计数法)

    3.小数的最大位是17位

    */

    var x = 10

    var y = 20

    var z = "The result is: " + x + y

    console.log('结果为',z)//The result is: 1020

    var a =0.1 + 0.2

    var b =0.3

    console.log('浮点数的值',a,a == b) //0.30000000000000004 false

    /*  

    js中数字相关的方法

    */

    /*  

    返回字符串

    */

    toString()

    /*  

    返回指定位数的字符串值

    不会改变原来数字

    */

    var x = 9.656

    let x0 = x.toFixed(0)           // 返回 10

    let x2 = x.toFixed(2)           // 返回 9.66

    console.log('toFixed',x,x0,x2)   //9.656 10 9.66

    /*  

    返回指定长度的字符串值

    不改变原来的数字

    */

    var x = 9.656

    let xT0 = x.toPrecision()        // 返回 9.656

    let xT2 = x.toPrecision(2)       // 返回 9.7

    console.log('toPrecision',x,xT0,xT2)   //9.656 9.656 9.7

    /*  

    以数值返回数值

    */

    // valueOf()

    /*  

    将js变量转换为数值

    无法转换为数字返回 NaN

    */

    let an = true

    let ar = Number(an)

    console.log('Number',ar)

    /*  

    解析一段字符串返回数字

    允许空格。只返回首个数字:

    */

    parseInt("10")         // 返回 10

    parseInt("10.33")      // 返回 10

    parseInt("10 20 30")   // 返回 10

    parseInt("10 years")   // 返回 10

    parseInt("years 10")   // 返回 NaN

    /*  

    解析一段字符串并返回数值。允许空格。只返回首个数字:

    */

    parseFloat("10")        // 返回 10

    parseFloat("10.33")     // 返回 10.33

    parseFloat("10 20 30")  // 返回 10

    parseFloat("10 years")  // 返回 10

    parseFloat("years 10")  // 返回 NaN

/**

** 加法函数,用来得到精确的加法结果

** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。

** 调用:accAdd(arg1,arg2)

** 返回值:arg1加上arg2的精确结果

**/function accAdd(arg1, arg2) {    var r1, r2, m, c   try {

r1 = arg1.toString().split(".")[1].length

}    catch (e) {

r1 = 0

}    try {

r2 = arg2.toString().split(".")[1].length

}    catch (e) {

r2 = 0

}

c = Math.abs(r1 - r2)

m = Math.pow(10, Math.max(r1, r2)) 

if (c >0) {        var cm = Math.pow(10, c)       if (r1 >r2) {

arg1 = Number(arg1.toString().replace(".", ""))

arg2 = Number(arg2.toString().replace(".", "")) * cm

} else {

arg1 = Number(arg1.toString().replace(".", "")) * cm

arg2 = Number(arg2.toString().replace(".", ""))

}

} else {

arg1 = Number(arg1.toString().replace(".", ""))

arg2 = Number(arg2.toString().replace(".", ""))

}    return (arg1 + arg2) / m

}//给Number类型增加一个add方法,调用起来更加方便。

Number.prototype.add = function

(arg) {    return accAdd(arg, this)

}

扩展资料

var a = 1, 

var b = 2, 

var c = a + b 

这样c得出来的解果是12,

使用Number()函数可以解决这个问题,如下 

var c = Number(a) + Number(b) 

这样c得出来的解果是3,

JavaScript Number() 函数对象的值转换为数字。

<script type="text/javascript">

var test1= new Boolean(true)

var test2= new Boolean(false)

var test3= new Date()

var test4= new String("999")

var test5= new String("999 888")

document.write(Number(test1)+ "<br />")

document.write(Number(test2)+ "<br />")

document.write(Number(test3)+ "<br />")

document.write(Number(test4)+ "<br />")

document.write(Number(test5)+ "<br />")</script>