JavaScript中的数字

javascript的数据类型分为两大类:原始类型对象类型

原始类型包括数字,字符串,布尔值,null,undefined。除了原始类型就是对象。

数字

JavaScript不区分整数和浮点数,在JavaScript中所有值均有浮点数值表示。一个实数是由整数部分,小数点和小数部分组成的。语法规则如下

[num][.num][(E|e)[+|-]num]

3.14159
0.23333
1213.456
6.18e10//6.18乘以10的10次方
1.14E-5//1.14乘以10的-5次方

数字支持的基本算数运算有加减乘除求余(+ - * / %),复杂的算数运算是通过作为Math对象的属性定义的函数和常量实现

Math.pow(2,3) //2的3次幂2*2*2
Math.round(.6) //四舍五入=>1.0
Math.ceil(.6) //向上取整=>1.0
Math.floor(.6) // 向下取整=>0.0
Math.abs(-5)//取绝对值=>5
Math.max(1,2,3)//返回最大值=>3(比较的数字个数不定)
Math.min(1,2,3)//返回最小值=>1(比较的数字的个数不定)
Math.random()//生成一个大于等于0.0小于1.0的伪随机数
Math.PI//圆周率
Math.E//e:自然对数的底数
Math.sqrt(2)//开方,根号2
Math.sin(0)//三角函数:还有Math.cos等,填入的参数是弧度制
Math.log(10)//10的自然对数
Math.log(100)/Math.LN10//以10为底100的对数
Math.exp(3)//e的三次方

Infinity表示无穷大,加负号之后就是负无穷大,NaN表示非数字值

二进制浮点数和四舍五入存在的错误
许多时候数值的表示只是无限接近某个数,但是不等于那个数。二进制浮点数表示可以精确的表示1/2,1/4,1/8,…1/1024但是无法精确的表示日常习惯的1/10,1/100,1/1000等。

var a=0.3-0.2;//照常理是等于0.1其实不是,而是无限的接近0.1
var b=0.2-0.1;
a==b//=>false 正常的理解是0.1==0.1但是确实是false

OMG

OMG
这个问题主要出现在比较两个数值的时候出现,其他情况不会出现大的影响。所以在货币的比较的时候建议不要比较0.1元的问题,放大比较到分而不是元,0.1元级别变为10分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值