曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3674|回复: 1
打印 上一主题 下一主题

Number(), parseFloat(), parseInt() -- 进行数据类型转换

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2011-12-13 13:27:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Number() 函数用来将变量值转换成为一个数。

parseFloat() 函数将值转换为一个浮点数。它从左到右对字符串种的字符逐个解析,直到遇到一个不能用作数字的字符为止,然后将之前获取的数字字符串转换成数字。如果一开始就遇到无法解析成数字的字符,那么返回结果是 NaN (代表非数字,Not a Number)。

parseInt() :将一个数转换成一个整数,不会进行四舍五入操作,而是直接将小数部分去掉。任何传递到这个函数中的非数字参数都会被丢掉。如果第一个字符不是 + , - 或一个阿拉伯数字,那么结果返回 NaN 。

测试代码
[code=javascript]<script type="text/javascript">
        var usrinput = prompt( "Please enter a number", "" );
        document.write( typeof(usrinput) );
        document.write( "<br />" );
        document.write( parseFloat( usrinput ) );
        document.write( "<br />" );
        document.write( parseInt( usrinput ) );
        
        usrinput = Number( usrinput );
        document.write( "<br />" );
        document.write( usrinput );
        document.write( "<br />" );
        document.write( typeof ( usrinput ) );
</script>[/mw_shl_code]
运行输出:
string
15.32
15
15.32
number
如果在输入框内输入 15.32abc 这样的字串,那么将会看到输出:
string
15.32
15
NaN
number
如果输入不含有数字形式的字符串(比如 abc),则会看到输出:
string
NaN
NaN
NaN
number
Number() 函数拒绝任何包含非数字字符的字符串(阿拉伯数字,一个有效的小数位,'+' 符号和 '-' 符号都是运行的,其它的字符都不行)。

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
沙发
 楼主| 发表于 2011-12-27 20:31:10 | 只看该作者

parseInt() 的第 2 个参数

parseInt() 的第 2 个参数表示进制,范围在 2~26 之间,当设置该参数时,parseInt() 会根据第一个参数来来判断数字的基数。

比如:
[JavaScript] 纯文本查看 复制代码
<script type=" text/javascript">
                var gKey = "0964dceb8f9cbff795be886dcf6fef3d8f7ceccc2d6d9abb";
                var _loc10 = gKey;

                gKey = gKey.substr(42, 6);
                
                document.write( "<br />" );

                var _loc8 = parseInt(gKey, 36);
                document.write(_loc8);  
    
    </script>

最后的运行结果为:385065335 。

上面代码中, gKey.substr(42, 6) 的值为 6d9abb ,表示从初始的 gKey 开始的第 42 个字符往后取 6 个字符。在 parseInt() 中,36 表示采用 36 进制数,即换算为:6*36^5 + 13*36^4 + 9*36^3 + 10*36^2 + 11*36 + 11 。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-11-1 06:49 , Processed in 0.077643 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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