js数字和字符串相互转化

1.字符串转换成数字

  a).自动转换
   var product = "21" * "2";//42
   利用这一优点只要把一个字符串减去0就可以将其转换为一个数字。
   var number = string_value - 0;
   但是,给一个字符串增加一个0会导致字符串连接,而不是类型转换。
 
  b).Number() 函数
   语法:Number(object)
   返回值:
 如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。

 如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。

    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 />");
   输出:
   1
   0
   1256657776588
   999
   NaN

  c).parseInt() 函数
  可解析一个字符串,并返回一个整数
  语法:parseInt(string, radix)  radix不是必选项,表示要解析的数字的基数。该值介于 2 ~ 36 之间。
  若该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据     string 来判断数字的基数。

  parseInt("3 blind mice"); //3
  parseFloat("3.14 blind mice"); //3.14
  parseInt("12.34");//12
  parseInt("0xFF");//255
  parseInt("10");  //返回 10
  parseInt("19",10);  //返回 19 (10+9)
  parseInt("11",2);  //返回 3 (10+9)
  parseInt("17",8);  //返回 15 (8+7)
  parseInt("1f",16);  //返回 31 (16+15)
  parseInt("010");  //未定:返回 10 或 8


  parseInt("elevent11");//NaN
  parseInt("11elevent");//11


  d).parseFloat() 函数
  可解析一个字符串,并返回一个浮点数。
  语法:parseFloat(string)  只有字符串中的第一个数字会被返回。开头和结尾的空格是允许的。
  如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。
  如果只想解析数字的整数部分,请使用 parseInt() 方法。

  parseFloat("He was 40.2");//NaN
  parseFloat(" 40.2 He was ");//40.2

  parseFloat("34 45 66");//34
  parseFloat("10.00");//10

2.数字转换为字符串
 
  a).结尾添加一个空字符串
  var n = 100;
  var n_as_string = n + "";

  b).String()函数
 
  var test1= new Boolean(1);
  var test2= new Boolean(0);
  var test3= new Boolean(true);
  var test4= new Boolean(false);
  var test5= new Date();
  var test6= new String("999 888");
  var test7=12345;

  document.write(String(test1)+ "<br />");
  document.write(String(test2)+ "<br />");
  document.write(String(test3)+ "<br />");
  document.write(String(test4)+ "<br />");
  document.write(String(test5)+ "<br />");
  document.write(String(test6)+ "<br />");
  document.write(String(test7)+ "<br />");
 
  输出:
  true
  false
  true
  false
  Wed Oct 28 00:17:40 UTC+0800 2009
  999 888
  12345

  c).toString()
  可把一个 Number 对象转换为一个字符串,并返回结果。
  语法:
  NumberObject.toString(radix)  radix,可选。规定表示数字的基数,使 2 ~ 36 之间的整数。
  若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,
  则 ECMAScript 标准允许实现返回任意值。

  var n = 17;
  binary_string = n.toString(2);//"10001"
  octal_string = "0" + n.toString(8);//"021"
  hex_string = "0x" + n.toString(16);//"0x11"

  d).toFixed()
  可把 Number 四舍五入为指定小数位数的数字。
  语法:
  NumberObject.toFixed(num)  num,必需。规定小数的位数,是 0 ~ 20 之间的值,
  包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。
 
  var n = 1234.789;
  n.toFixed(0);//"1234"
  n.toFixed(2);//"1234.79"

  e).toExponential()
  可把对象的值转换成指数计数法。
  语法同上
 
  var n = 123456.789;
  n.toExponential(1);//"1.2e+5"
  n.toExponential(3);//"1.235e+5"

  f).toPrecision()
  使用指定有意义的位数来显示一个数字,如果有意义的位数还不够显示数字的整个整数部分,它就使用指数表示法。
  可在对象的值超出指定位数时将其转换为指数计数法。
 
  var n = 123456.789;
  n.toPrecision(4);//"1.235e+5"
  n.toPrecision(7);//"123456.8"

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值