js数据类型中的数字与字符串的转换

来源:互联网 发布:ipad下载付费软件 编辑:程序博客网 时间:2024/05/29 09:40

数字转字符串

1.隐式转换:要把数字转换为字符串,只要给它添加一个空的字符串即可

var nOne = 123 + "";alert(typeof nOne);(用alert检测数据类型)

2.显式转换:string()函数和toString()方法
var string_value = number.toString();

var nValue = 12;var sValue = nValue.toString();alert(typeof sValue);

var string_value = string(number)

var nValue = 12;var sValue = String(nValue);alert(typeof sValue);

3.Number 类的三个数字到字符串方法

var n = 123456.789;var s = n.toFixed(0);    //  "123457"alert(s);var s = n.toFixed(2);    //   "123456.79"alert(s);var s = n.toExponential(1);   //  "1.2e+5"alert(s);var s = n.toExponential(3);  //   "1.235e+5"alert(s);var s = n.toPrecision(4);    //   "1.235e+5"alert(s);var s = n.toPrecision(7);    //   "123456.8"alert(s);

字符串转数字

1.隐式转换:当字符串用于数字环境中也能自动转换为数字

var product = "21"*"2";//product is the number 42

利用这一有点,我们只要把一个字符串减去0就可以将其转换为一个数字

`var number = string_value - 0;`

(但是注意,给一个字符串增加一个0会导致字符串连接,而不是类型转换。)

将一个字符串转换为数字的一种缺少技巧性但是更清楚明白的方法就是:把Number()构造函数作为一个函数来调用:
var number = Number(string_value)
这种把字符串转换为数字的方法的麻烦之处在于它国语严格,它只对以10为基数的数字有效,并且尽管它允许开头的和结尾的空白,但是,在紧随数字的字符串中,它不允许出现任何非空字符。

要允许更多灵活的转化,可以使用parseInt()和parseFloat()。这些函数可以从字符串开始处转换和返回任何的数字,忽略或舍去非数字部分。parseInt()只截取整数,而parseFloat()截取整数和浮点数。如果一个字符串以“0x”或“0X”开头,parseInt()将其解释成为一个十六进制的数字。如:

parseInt("3 blind mice");   //returns     3    parseFloat("3.14 meters");  //returns     3.14      parseInt("12.34");          //returns     12      parseInt("0xff");           //returns     255 

parseInt()甚至可以接受另一个参数来制定要解析的数字的基数。合法的值在2到36之间,如;

parseInt("11",2)            //returns     3(1*2+1)parseInt("ff",16)           //returns     255(15*16+15)parseInt("zz",32)           //returns     1295(32*36+35)parseInt("077",8)           //returns     63(7*8 +7)parseInt("077",10)          //returns     77(7*10+7)

如果parseInt()和parseFloat()不能够把制定的字符串转为数字,他们就会返回Nan

parseInt("eleven")           //returns NanparseFloat("$72.47")           //returns Nan
0 0
原创粉丝点击