aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 9674|回复: 3

求教:tonumber 强制转换数值问题

[复制链接]

2

主题

19

回帖

179

积分

一级会员

积分
179
发表于 2018-4-6 20:03:07 | 显示全部楼层 |阅读模式
请教下,
为什么 08 09 这样的2个字符,转换为数值,却不是想要的结果呢??
怎么变为0了呢,其他的又正常


  1. import console;

  2. var str1 = "07";
  3. var str2 = "08";
  4. var str3 = "09";
  5. var str4 = "10";
  6. console.log("07转换为数值" ,tonumber(str1) );
  7. console.log("08转换为数值" ,tonumber(str2) );
  8. console.log("09转换为数值" ,tonumber(str3) );
  9. console.log("10转换为数值" ,tonumber(str4) );

  10. console.pause(true);
复制代码


下面是执行的结果:
----------------------------------------
07转换为数值    7       2
08转换为数值    0       1
09转换为数值    0       1
10转换为数值    10      2
请按任意键继续 ...
----------------------------------------

8

主题

32

回帖

384

积分

培训班

积分
384
发表于 2018-4-6 20:11:02 | 显示全部楼层
  1. import console;

  2. var str1 = "07";
  3. var str2 = "08";
  4. var str3 = "09";
  5. var str4 = "10";
  6. console.log("07转换为数值" ,tonumber(str1,10) );
  7. console.log("08转换为数值" ,tonumber(str2,10) );
  8. console.log("09转换为数值" ,tonumber(str3,10) );
  9. console.log("10转换为数值" ,tonumber(str4) );

  10. console.pause(true);
复制代码


“0”开头的数字 转换为number会转换为8进制的。
想要“0”开头的数字转换为number转成10进制的,可以在tostring的第二个参数写10 就是代表10进制

4

主题

45

回帖

733

积分

三级会员

积分
733
发表于 2018-4-6 20:16:17 | 显示全部楼层
0开头的话,会被当做八进制数,7就是对的,而八进制里不存在8和9,所以就成0了

2

主题

19

回帖

179

积分

一级会员

积分
179
 楼主| 发表于 2018-4-6 20:17:33 | 显示全部楼层
daheian 发表于 2018-4-6 20:11
“0”开头的数字 转换为number会转换为8进制的。
想要“0”开头的数字转换为number转成10进制的,可以 ...

果然如此
谢谢提醒哈!

另外
tostring 应该是 tonumber  
估计是写错咯
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-4-19 13:53 , Processed in 0.053446 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表