曲径通幽论坛

标题: Number(), parseFloat(), parseInt() -- 进行数据类型转换 [打印本页]

作者: beyes    时间: 2011-12-13 13:27
标题: Number(), parseFloat(), parseInt() -- 进行数据类型转换
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() 函数拒绝任何包含非数字字符的字符串(阿拉伯数字,一个有效的小数位,'+' 符号和 '-' 符号都是运行的,其它的字符都不行)。
作者: beyes    时间: 2011-12-27 20:31
标题: 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 。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2