5.6.2 Number类型
Number是与数字对应的引用类型。要创建Number对象,可以在调用Number构造函数时向其中传递相应的数值。例如:
var numberObject=new Number(10);
与Boolean类型一样,Number类型也重写了valueof()、toLocaleString()和toString()方法。重写后的valueof()方法返回对象的基本类型的数值。另外两个方法则返回字符串形式的数值。例如:
var num=10;
alert(num.toString());//"10"
alert(num.toString(2));//"1010"
alert(num.toString(8));//"12"
alert(num.toString(10));//"10"
alert(num.toString(16));//"a"
处理继承的方法之外,Number类型还提供了一些用于将数值格式化为字符串的方法。
其中,toFixed()方法会按照指定的小数位返回数值的字符串表示,例如:
var num=10;
alert(num.toFixed(2));//"10.00"
这里给toFixed()方法传入了数值2,意思是显示几位小数。于是,这个方法返回了“10.00”,即以0填补了必要的小数位。如果数值本身包含的小数位比指定的还要多,那么接近指定的最大小数位的值就会舍入,例如:
var num = 10.005;
alert(num.toFixed(2));//"10.01"
能够自动舍入的特性,使得toFixed()方法很适合处理货币值。但需要注意的是,不同浏览器给这个方法设定的舍入规则可能会有所不同。在给toFixed()传入0的情况下,IE8及之前的版本不能正确舍入范围在{(-0.94,-0.5],[0.5,0.94)}之间的值。对于这个范围内的值,IE会返回0,而不是-1或1;其他浏览器都能返回正确的值。IE9修复了这个问题。
注:toFixed()方法可以表示带有0到20个小数位的数值。但这只是标准实现的范围,有些浏览器也可能支持更多位数。
另外可用于格式化数值的方法是toExponential(),该方法返回以指数表示法(也成e表示法)表示的数值的字符串形式。与toFixed()一样,toExponential()也接收一个参数,而且该参数同样也是指定输出结果中的小数位数。例如:
var num = 10;
alert(num.toExponential(1));//"1.0e+1"
以上代码输出了“1.0e+1”;不过,这么小的数值一般不必用e表示法。如果你想得到表示某个数值的最合适的格式,就应该使用toPrecision()方法。
对于一个数值来书,toPrecision()方法可能会返回固定大小(fixed)格式,也可能返回指数(exponential)格式;具体规则是看哪种格式最合适。这个方法接收一个参数,即表示数值的所有数字的位数(不包含指数部分)。例如:
var num=99;
alert(num.toPrecision(1));//"1e+2"
alert(num.toPrecision(2));//"99"
alert(num.toPrecision(3));//"99.0"
以上代码首先完成是以一位数来表示99,结果是“1e+2”,即100。因为一位数无法准确的表示99,因此toPrecision()就将它向上舍入为100,这样就可以使用一位数来表示它了。而接下来用两位数表示99,当然就是“99”。最后使用三位数表示99时,toPrecision()方法返回了“99.0”。
实际上,toPrecision()会根据要处理的数值决定到底是调用toFixed()还是调用toExponential()。而这三个方法都可以通过向上或向下舍入,做到以最准确的形式来表示带有正确的小数位的值。
注:toPrecision()方法可以表现1到21位小数。某些浏览器支持的范围更大,但这是典型实现的范围。
与Boolean对象相似,Number对象也以后台方式为数值提供了重要的功能。但与此同时,我们仍然不建议直接实例化Number类型,而原因与显式创建Boolean对象一样。具体来讲,就是在使用typeof和instanceof操作符测试基本类型数值与引用类型数值时,得到的结果完全相同,例如:
var numberObject=new Number(10);
var numberValue=10;
alert(typeof numberObject);//"object"
alert(typeof numberValue);//"number"
alert(numberObject instanceof Number);//true
alert(numberValue instanceof Number);//false;
在使用typeof操作符测试基本类型数值时,始终会返回number,而在测试Number对象时,则会返回object。类似的,Number对象时Number类型的实例,而基本类型的数值则不是。
5.6.2 Number类型的更多相关文章
- ORACLE NUMBER类型Scale为0引发的问题
今天遇到了一个很有意思的NUMBER类型Scale引发的问题,我用一个简单的测试用例来展示一下这个案例.假如有个TEST的表,有个字段类型为NUMBER,我插入下面两条数据 CREATE TABLE ...
- javascript学习笔记2-typeof、Number类型、Boolean()
1.typeof操作符 对一个值使用typeof操作符可能返回下列某个字符串 "undefined"——这个值未定义 "boolean"——这个值是布尔值 &q ...
- oracle中的number类型
number 数据类型 number (precision,scale) a) precision表示数字中的有效位,如果没有指定precision的话,oracle将使用38作为精度: b) ...
- Date类型,Boolean类型,Number类型
1.Date类型: 1)创建Date对象: var date=new Date(); //Date对象会把当前日期和时间保存为其初始值 2)Date对象的方法: --这些得到的都是数字 ...
- ORACLE 中NUMBER 类型 低精度转换成高精度
例如: 表User中有一个字段 salary Number(10,3), 如果想把字段salary的类型提高精度到salary Number(10,6),保留六位小数, 解决办法:1,ALTER ...
- 给Number类型增加加法、减、乘、除函数,解决float相加结果精度错乱的问题
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- oracle中int类型和number类型区别
INT类型是NUMBER类型的子类型.下面简要说明:(1)NUMBER(P,S)该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节个数),而S则表示小数点后面的位数.假设定义SAL列为 ...
- Javascript数据类型——number类型
ECMAScript规范中使用IEEE754格式来表示整数和浮点数.支持十进制.八进制以及十六进制.有一点注意的是八进制数字在严格模式下是无效的,这可能会影响到程序的正常运行. 避免浮 ...
- JavaScript 数值Number类型详解
Number 问题 如果下面的问题你都能回答对了吗? 0.1 + 0.2 == 0.3 成立吗? .e-5 表示多少? 怎么表示8进制? 怎么转换进制? 如何将字符串转换成数值或整数?反过来呢?十六进 ...
随机推荐
- nfs nobody,nobody 需要在nfs客户端修改从nfs服务器端共享过来的目录怎么办?
1,加入我们使用nfs共享安装oracle, 安装oracle需要修改base,data,orainventory等等目录及自目录的属主及权限,一般会继承nfs客户端目录的权限及属主 groupadd ...
- yum subversion puppet puppet-server
yum -y install ruby ruby-libs ruby-shadow yum -y install puppet puppet-server facter yum -y install ...
- 排序方法之标准库中的快排 qsort ()函数
C标准库qsort()函数的用法(快排) 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base, int nelem, int width, i ...
- 【Deep Learning】genCNN: A Convolutional Architecture for Word Sequence Prediction
作者:Mingxuan Wang.李航,刘群 单位:华为.中科院 时间:2015 发表于:acl 2015 文章下载:http://pan.baidu.com/s/1bnBBVuJ 主要内容: 用de ...
- windows下安装tern for vim
操作系统:windows8.1 64位 vim:gvim7.4 1.下载tern for vim,去官网直接下载,连接好像都是到github上(https://github.com/marijnh ...
- STL模板_map
map -key - value -键值无法重复 multimap -键值可以重复 声明: -map<int, string> m -multimap<int, string> ...
- php ZIP压缩类实例分享
php ZIP压缩类实例分享 <?php $zipfiles =array("/root/pooy/test1.txt","/root/pooy/test2.txt ...
- Centos 7 安装Mono和Jexus 默认目录安装 (一)
一.准备环境 yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-deve ...
- tag标签添加删除并把值存入到一个input的value内
html: <input type="text" id="tagValue" style="display: none;" /> ...
- Linux 安装g++
g++ 它的全名不叫g++而是叫gcc-c++; 所以要安装它就可以用 yum install gcc-c++;