Javascript使用IEEE -754格式存储整型和浮点型(有些语言称为双精度)
因为这种存储格式,所以javascript中有正的0和负的0
 
整型也可以存储八进制和十六制
 
八进制第一个数为0,后面跟着的数如果大于八,会自动转化为十进制
078  将会被解释为78
在strict mode里面八进制是不合法的,会出现异常
 
16进制以0x开头
在算法里面八进制和十六进制都会被当作十进制处理
 
浮点型(小数)的存储内存是整型的两倍,所以javascript总是试图把浮点型转为整型
1.0会被转为整型1, 1.忘记加后面的数字也会被转为1
 
要表示很大的类型可以使用e(E)符号,表示10的次方
3.125e7    表示31250000
 
可以表示很小的数 3e-7代表0.00000003,javascript会自动把小数点后有六个或以上0的小数都转化为e格式
 
Floating-point values are accurate up to 17 decimal places but are far less accurate in arithmetic computations than whole numbers.
例如0.1+0.2=0.30000000000000004
0.05+0.25=0.3
0.15+0.15=0.3这样又是正常的
这并不是ecmascript才有的错误,只要采用IEEE-754存储都会有这样问题
 
因为内存限制,数字大小是有范围的
最小的Number.MIN_VALUE and is 5e-324 on most browsers
最大的Number.MAX_VALUE and is 1.7976931348623157e+308 on most browsers
如果超出了这个范围小的转化为-infinity,大于最大值的为infinity
 
在其他语言中除以0会抛出异常,在ecmascript会得到NaN,这样程序会继续运行下去
用isNAN()判断时会尝试把传进去的参数转化为数字判断
alert(isNaN(“blue”));   输出true
alert(isNaN(true));输出false
 
有三个函数可以把非数字内容转化为数字
Number()
- ➤  When applied to Boolean values, true and false get converted into 1 and 0, respectively.
- ➤  When applied to numbers, the value is simply passed through and returned.
 
- ➤  When applied to null, Number() returns 0.
 
- ➤  When applied to undefined, Number() returns NaN.
 
- ➤  When applied to strings, the following rules are applied:
 
    - ➤  If the string contains only numbers, optionally preceded by a plus or minus sign, it is always converted to a decimal number, so “1” becomes 1, “123” becomes 123, and “011” becomes 11 (note: leading zeros are ignored).
 
    - ➤  If the string contains a valid floating-point format, such as “1.1”, it is converted into the appropriate floating-point numeric value (once again, leading zeros are ignored).
 
    - ➤  If the string contains a valid hexadecimal format, such as “0xf”, it is converted into an integer that matches the hexadecimal value.
 
    - ➤  If the string is empty (contains no characters), it is converted to 0.
 
    - ➤  If the string contains anything other than these previous formats, it is converted into NaN.
 
- ➤  When applied to objects, the valueOf() method is called and the returned value is converted based on the previously described rules. If that conversion results in NaN, the toString() method is called and the rules for converting strings are applied.
 
parseInt()从第一个字符开始转化,忽略开头的空格,直到遇到非数字或到结尾停止,如果符合十六进制语法的会转化为十六进制
 
var num1 = parseInt(“1234blue”);  结果为1234
var num2 = parseInt(“”);     结果为NaN,和Number()不同
var num3 = parseInt(“0xA”);   十六进制 10
var num4 = parseInt(22.5);    22
var num5 = parseInt(“70”);     70
 
在ECMAScript 3 and 5该函数有区别
var num = parseInt(“070”);       //56 (octal) in ECMAScript 3, 0 (decimal) in ECMAScript 5
在第五版中,解析八进制的能力从引擎移除了,所以0开头被认为是无效的,返回0
因此使用时最好添加radix
var num1 = parseInt(”AF”, 16); //175
var num2 = parseInt(”AF”); //NaN
 
parseFloat()是没有基数可以添加的,因此0开头的话都会转化为0,如果是E的字符,能够转化为整型
 
parseFloat(“3.125e7”);      转化为31250000

Number 类型的更多相关文章

  1. ORACLE NUMBER类型Scale为0引发的问题

    今天遇到了一个很有意思的NUMBER类型Scale引发的问题,我用一个简单的测试用例来展示一下这个案例.假如有个TEST的表,有个字段类型为NUMBER,我插入下面两条数据 CREATE TABLE ...

  2. javascript学习笔记2-typeof、Number类型、Boolean()

    1.typeof操作符 对一个值使用typeof操作符可能返回下列某个字符串 "undefined"——这个值未定义 "boolean"——这个值是布尔值 &q ...

  3. oracle中的number类型

    number 数据类型 number (precision,scale) a)    precision表示数字中的有效位,如果没有指定precision的话,oracle将使用38作为精度: b)  ...

  4. Date类型,Boolean类型,Number类型

    1.Date类型:  1)创建Date对象:    var date=new Date();  //Date对象会把当前日期和时间保存为其初始值 2)Date对象的方法:    --这些得到的都是数字 ...

  5. ORACLE 中NUMBER 类型 低精度转换成高精度

    例如: 表User中有一个字段 salary  Number(10,3), 如果想把字段salary的类型提高精度到salary  Number(10,6),保留六位小数, 解决办法:1,ALTER ...

  6. 给Number类型增加加法、减、乘、除函数,解决float相加结果精度错乱的问题

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. oracle中int类型和number类型区别

    INT类型是NUMBER类型的子类型.下面简要说明:(1)NUMBER(P,S)该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节个数),而S则表示小数点后面的位数.假设定义SAL列为 ...

  8. Javascript数据类型——number类型

            ECMAScript规范中使用IEEE754格式来表示整数和浮点数.支持十进制.八进制以及十六进制.有一点注意的是八进制数字在严格模式下是无效的,这可能会影响到程序的正常运行. 避免浮 ...

  9. 5.6.2 Number类型

    Number是与数字对应的引用类型.要创建Number对象,可以在调用Number构造函数时向其中传递相应的数值.例如: var numberObject=new Number(10); 与Boole ...

  10. JavaScript 数值Number类型详解

    Number 问题 如果下面的问题你都能回答对了吗? 0.1 + 0.2 == 0.3 成立吗? .e-5 表示多少? 怎么表示8进制? 怎么转换进制? 如何将字符串转换成数值或整数?反过来呢?十六进 ...

随机推荐

  1. poj3468树状数组的区间更新,区间求和

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 47174   ...

  2. MySQL之增删改查

    前言:以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表上,未涉及多表操作. 前提:在进行" ...

  3. 点聚合功能---基于ARCGIS RUNTIME SDK FOR ANDROID

    一直不更新博客的原因,如果一定要找一个,那就是忙,或者说懒癌犯了. 基于ArcGIS RunTime SDK for Android的点聚合功能,本来是我之前做过的一个系统里面的一个小部分,今天抽出一 ...

  4. 【NOIP】OpenJudge - 15:银行利息

    #include<stdio.h>//银行利息 int main() { float a,b; int i,c,d; scanf("%f%f%d",&a,&am ...

  5. Asp.net MVC4高级编程学习笔记-视图学习第三课Razor页面布局20171010

    Razor页面布局 1)  在布局模板页中使用@RenderBody标记来渲染主要内容.比如很多web页面说头部和尾部相同,中间内容部分使用@RenderBody来显示不同的页面内容. 2)  在布局 ...

  6. Python自学笔记-生成器(来自廖雪峰的官网Python3)

    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 生成器 通过列 ...

  7. ZOJ2006 一道很尴尬的string操作题

    ZOJ2006(最小表示法) 题目大意:输出第一个字符串的最小字典序字串的下标! 然后我居然想试一试string的erase的能力,暴力一下,然后20msAC了,尴尬的数据.......... #in ...

  8. ZOJ1315

    代码先寄放这里 #include<cstdio> #include<cstdlib> #include<iostream> #include<cstring& ...

  9. 用C#实现字符串相似度算法(编辑距离算法 Levenshtein Distance)

    在搞验证码识别的时候需要比较字符代码的相似度用到"编辑距离算法",关于原理和C#实现做个记录. 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫做Edit Dist ...

  10. JavaScript面向对象基础与this指向问题

      前  言           我们的程序语言经历了从"面向机器".到"面向过程".再到"面向对象"的一个过程.而JavaScript是一 ...