023_JavaScript数字方法

1. toString()方法

1.1. toString()方法可把一个数值转换为一个字符串, 并返回结果。

1.2. 语法

numberObject.toString(radix)

1.3. 参数

1.4. Number类型的toString()方法比较特殊, 它有两种模式, 即默认模式和基模式。采用默认模式, toString()方法只是用相应的字符串输出数字值, 如下所示:

var num = 10;
window.alert(num.toString());	// 输出"10"

1.5. 采用Number类型的toString()方法的基模式, 可以用不同的基输出数字, 例如二进制的基是2, 八进制的基是8, 十六进制的基是16。如下所示:

var num = -123;
window.alert(num.toString(2));	// 输出"-1111011"
window.alert(num.toString(8));	// 输出"-173"
window.alert(num.toString(16));	// 输出"-7b"

1.6. 负整数转换成二进制字符串后, JavaScript并不以二进制补码的形式显示, 而是用数字绝对值的标准二进制代码前面加负号的形式输出。

1.7. 对数字调用toString(10)与调用toString()相同, 它们返回的都是该数字的十进制形式。

1.8. 例子

1.8.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>JavaScript数字-toString()方法</title>
	</head>
	<body>
		<script type="text/javascript">
			var x = -123;   
			var y = x.toString();
			var z = x.toString(2);
			var i = x.toString(8);
			var j = x.toString(10);
			var k = x.toString(16);

			document.write('x = ' + x + ', x的数据类型是: ' + typeof x + '<br />');
			document.write('y = ' + y + ', y的数据类型是: ' + typeof y + '<br />');
			document.write('z = ' + z + ', z的数据类型是: ' + typeof z + '<br />');
			document.write('i = ' + i + ', i的数据类型是: ' + typeof i + '<br />');
			document.write('j = ' + j + ', j的数据类型是: ' + typeof j + '<br />');
			document.write('k = ' + k + ', k的数据类型是: ' + typeof k + '<br />');
		</script>
	</body>
</html>

1.8.2. 效果图

2. toExponential()方法

2.1. toExponential()返回字符串值, 把数字四舍五入为指定小数位数并使用指数计数法的数字。

2.2.  语法

numberObject.toExponential(num)

2.3. 参数

2.4. 该参数是可选的, 定义小数点后的字符数。如果您没有设置它, JavaScript不会对数字进行舍入, 使用尽可能多的数字, 但依然用指数计数法表示数。

2.5. 返回值是numberObject的字符串表示, 采用指数计数法, 即小数点之前有一位数字, 小数点之后有num位数字。该数字的小数部分将被舍入, 必要时用0补足, 以便它达到指定的长度。

2.6. 例子

2.6.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>JavaScript数字-toExponential()方法</title>
	</head>
	<body>
		<script type="text/javascript">
			var x = 300.1415926;   
			var y = x.toExponential();
			var z = x.toExponential(0);
			var j = x.toExponential(4);
			var k = x.toExponential(8);
			var l = x.toExponential(10);

			document.write('x = ' + x + ', x的数据类型是: ' + typeof x + '<br />');
			document.write('y = ' + y + ', y的数据类型是: ' + typeof y + '<br />');
			document.write('z = ' + z + ', z的数据类型是: ' + typeof z + '<br />');
			document.write('j = ' + j + ', j的数据类型是: ' + typeof j + '<br />');
			document.write('k = ' + k + ', k的数据类型是: ' + typeof k + '<br />');
			document.write('l = ' + l + ', l的数据类型是: ' + typeof l + '<br />');
		</script>
	</body>
</html>

2.6.2. 效果图

3. toFixed()方法

3.1. toFixed()返回字符串值, 把数字四舍五入为指定小数位数的数字。

3.2. 语法

numberObject.toFixed(num)

3.3. 参数

3.4. 该参数是可选的, 定义小数点后的字符数。如果您没有设置它, 默认值是0。

3.5. 返回值是numberObject的字符串表示, 不采用指数计数法, 小数点后有固定的num 位数字。如果必要, 该数字会被舍入, 也可以用0补足, 以便它达到指定的长度。

3.6. toFixed(2)非常适合处理金钱。

3.7. 例子

3.7.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>JavaScript数字-toFixed()方法</title>
	</head>
	<body>
		<script type="text/javascript">
			var x = 300.1415926;   
			var y = x.toFixed();
			var z = x.toFixed(0);
			var j = x.toFixed(2);
			var k = x.toFixed(6);
			var l = x.toFixed(10);

			document.write('x = ' + x + ', x的数据类型是: ' + typeof x + '<br />');
			document.write('y = ' + y + ', y的数据类型是: ' + typeof y + '<br />');
			document.write('z = ' + z + ', z的数据类型是: ' + typeof z + '<br />');
			document.write('j = ' + j + ', j的数据类型是: ' + typeof j + '<br />');
			document.write('k = ' + k + ', k的数据类型是: ' + typeof k + '<br />');
			document.write('l = ' + l + ', l的数据类型是: ' + typeof l + '<br />');
		</script>
	</body>
</html>

3.6.2. 效果图

4. toPrecision()方法

4.1. toPrecision()返回字符串值, 把数字四舍五入为指定位数并使用指定计数法的数字。

4.2. 语法

numberObject.toPrecision(num)

4.3. 参数

4.4. 该参数是可选的, 定义指数计数法最小位数。如果您没有设置它, 仅仅是调用toString()方法。

4.5. 返回numberObject的字符串表示, 包含num个有效数字。如果num足够大, 能够包括 numberObject整数部分的所有数字, 那么返回的字符串将采用定点计数法。否则, 采用指数计数法, 即小数点前有一位数字, 小数点后有num-1位数字。必要时, 该数字会被舍入或用0补足。

4.6. 例子

4.6.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>JavaScript数字-toPrecision()方法</title>
	</head>
	<body>
		<script type="text/javascript">
			var x = 300.1415926;   
			var y = x.toPrecision();
			var z = x.toPrecision(1);
			var j = x.toPrecision(4);
			var k = x.toPrecision(9);
			var l = x.toPrecision(12);

			document.write('x = ' + x + ', x的数据类型是: ' + typeof x + '<br />');
			document.write('y = ' + y + ', y的数据类型是: ' + typeof y + '<br />');
			document.write('z = ' + z + ', z的数据类型是: ' + typeof z + '<br />');
			document.write('j = ' + j + ', j的数据类型是: ' + typeof j + '<br />');
			document.write('k = ' + k + ', k的数据类型是: ' + typeof k + '<br />');
			document.write('l = ' + l + ', l的数据类型是: ' + typeof l + '<br />');
		</script>
	</body>
</html>

4.6.2. 效果图

5. parseInt()方法

5.1. parseInt()解析一段字符串并返回整数。

5.2. 语法

parseInt(string, radix)

5.3. 参数

5.4. parseInt()首先查看位置0处的字符, 判断它是否是个有效数字; 如果不是, 该方法将返回NaN, 不再继续执行其他操作。但如果该字符是有效数字, 该方法将查看位置1处的字符, 进行同样的测试。这一过程将持续到发现非有效数字的字符为止, 此时parseInt()将把该字符之前的字符串转换成数字。或者整个字符串都是有效数字, 把整个字符串都转成数字。

5.5. 整数的有效字符串包括, 数字前导的正负号(+或-)、八进制前导0、十六进制前导0x和数字(二进制只认识0-1, 八进制认识0-7, 十进制认识0-9, 十六进制认识0-F)。科学记数法中的指数(e或E)是非法的。

5.6. 如果无法转换为数值, 则返回NaN。parseInt()只能处理字符串, 其它类型都返回NaN。

5.7. parseInt()方法还有基模式, 可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的。

var num1 = parseInt("10", 2);	// 返回 2
var num2 = parseInt("10", 8);	// 返回 8
var num3 = parseInt("10", 10);	// 返回 10
var num4 = parseInt("AF", 16);	// 返回 175

5.8. parseInt()方法不使用基模式, 会把八进制(以0开头)字符串类型数字按照十进制转换成整数。

5.9. parseInt()方法不使用基模式, 会把十六进制(以0x开头)字符串类型数字正确的转换成十进制整数。

5.10. 开头和结尾的空格是允许的。

5.11. parseInt()方法并非数字方法, 而是全局JavaScript方法。

6. parseFloat()方法

6.1. parseFloat()解析一段字符串并返回浮点数。

6.2. 语法

parseFloat(string)

6.3. 参数

6.4.parseFloat()方法与parseInt()方法的处理方式相似, 从位置0开始查看每个字符, 直到找到第一个非有效的字符为止, 然后把该字符之前的字符串转换成浮点数。不过, 对于这个方法来说, 第一个出现的小数点是有效字符。

6.5. 浮点数的有效字符串包括, 数字前导的正负号(+或-)、数字(0-9)、小数点, 或者科学记数法中的指数(e或E)。

6.6. 如果无法转换为数值, 则返回NaN。只能处理字符串, 其它类型都返回NaN。

6.7. parseFloat()方法也没有基模式。

6.8. parseFloat()方法的另一不同之处在于, 字符串必须以十进制形式表示浮点数, 而不是用八进制或十六进制。八进制字符串类型数字, parseFloat()方法会忽略前导0, 按照十进制转换成浮点数。十六进制字符串类型数字, parseFloat()方法认为x不是有效字符, 最终转换成0。

6.9. 开头和结尾的空格是允许的。

6.10. parseFloat()方法并非数字方法, 而是全局JavaScript方法。

6.11. 例子

6.11.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>JavaScript数字-parseInt()和parseFloat()方法</title>
	</head>
	<body>
		<script type="text/javascript">
			var x = '+12.34';   
			var y = '-12.34#&*';
			var z = '-012.34';
			var j = '012#&*';
			var k = '-0x12.34';
			var l = '0x12#&*';
			var m = '#&*12.34';
			var n = '3.1415926e7';
			var o = '1414E3';
			
			document.write('x = ' + x + ', parseInt(x, 2)后x = ' + parseInt(x, 2) + ', parseInt(x, 2)后x的数据类型是: ' + typeof parseInt(x, 2) + '<br />');
			document.write('x = ' + x + ', parseInt(x, 8)后x = ' + parseInt(x, 8) + ', parseInt(x, 8)后x的数据类型是: ' + typeof parseInt(x, 8) + '<br />');
			document.write('x = ' + x + ', parseInt(x)后x = ' + parseInt(x) + ', parseInt(x)后x的数据类型是: ' + typeof parseInt(x) + '<br />');
			document.write('x = ' + x + ', parseInt(x, 10)后x = ' + parseInt(x, 10) + ', parseInt(x, 10)后x的数据类型是: ' + typeof parseInt(x, 10) + '<br />');
			document.write('x = ' + x + ', parseInt(x, 16)后x = ' + parseInt(x, 16) + ', parseInt(x, 16)后x的数据类型是: ' + typeof parseInt(x, 16) + '<br />');
			document.write('y = ' + y + ', parseInt(y, 2)后y = ' + parseInt(y, 2) + ', parseInt(y, 2)后y的数据类型是: ' + typeof parseInt(y, 2) + '<br />');
			document.write('y = ' + y + ', parseInt(y, 8)后y = ' + parseInt(y, 8) + ', parseInt(y, 8)后y的数据类型是: ' + typeof parseInt(y, 8) + '<br />');
			document.write('y = ' + y + ', parseInt(y)后y = ' + parseInt(y) + ', parseInt(y)后y的数据类型是: ' + typeof parseInt(y) + '<br />');
			document.write('y = ' + y + ', parseInt(y, 10)后y = ' + parseInt(y, 10) + ', parseInt(y, 10)后y的数据类型是: ' + typeof parseInt(y, 10) + '<br />');
			document.write('y = ' + y + ', parseInt(y, 16)后y = ' + parseInt(y, 16) + ', parseInt(y, 16)后y的数据类型是: ' + typeof parseInt(y, 16) + '<br />');
			document.write('z = ' + z + ', parseInt(z, 2)后z = ' + parseInt(z, 2) + ', parseInt(z, 2)后z的数据类型是: ' + typeof parseInt(z, 2) + '<br />');
			document.write('z = ' + z + ', parseInt(z, 8)后z = ' + parseInt(z, 8) + ', parseInt(z, 8)后z的数据类型是: ' + typeof parseInt(z, 8) + '<br />');
			document.write('z = ' + z + ', parseInt(z)后z = ' + parseInt(z) + ', parseInt(z)后z的数据类型是: ' + typeof parseInt(z) + '<br />');
			document.write('z = ' + z + ', parseInt(z, 10)后z = ' + parseInt(z, 10) + ', parseInt(z, 10)后z的数据类型是: ' + typeof parseInt(z, 10) + '<br />');
			document.write('z = ' + z + ', parseInt(z, 16)后z = ' + parseInt(z, 16) + ', parseInt(z, 16)后z的数据类型是: ' + typeof parseInt(z, 16) + '<br />');
			document.write('j = ' + j + ', parseInt(j, 2)后j = ' + parseInt(j, 2) + ', parseInt(j, 2)后j的数据类型是: ' + typeof parseInt(j, 2) + '<br />');
			document.write('j = ' + j + ', parseInt(j, 8)后j = ' + parseInt(j, 8) + ', parseInt(j, 8)后j的数据类型是: ' + typeof parseInt(j, 8) + '<br />');
			document.write('j = ' + j + ', parseInt(j)后j = ' + parseInt(j) + ', parseInt(j)后j的数据类型是: ' + typeof parseInt(j) + '<br />');
			document.write('j = ' + j + ', parseInt(j, 10)后j = ' + parseInt(j, 10) + ', parseInt(j, 10)后j的数据类型是: ' + typeof parseInt(j, 10) + '<br />');
			document.write('j = ' + j + ', parseInt(j, 16)后j = ' + parseInt(j, 16) + ', parseInt(j, 16)后j的数据类型是: ' + typeof parseInt(j, 16) + '<br />');
			document.write('k = ' + k + ', parseInt(k, 2)后k = ' + parseInt(k, 2) + ', parseInt(k, 2)后k的数据类型是: ' + typeof parseInt(k, 2) + '<br />');
			document.write('k = ' + k + ', parseInt(k, 8)后k = ' + parseInt(k, 8) + ', parseInt(k, 8)后k的数据类型是: ' + typeof parseInt(k, 8) + '<br />');
			document.write('k = ' + k + ', parseInt(k)后k = ' + parseInt(k) + ', parseInt(k)后k的数据类型是: ' + typeof parseInt(k) + '<br />');
			document.write('k = ' + k + ', parseInt(k, 10)后k = ' + parseInt(k, 10) + ', parseInt(k, 10)后k的数据类型是: ' + typeof parseInt(k, 10) + '<br />');
			document.write('k = ' + k + ', parseInt(k, 16)后k = ' + parseInt(k, 16) + ', parseInt(k, 16)后k的数据类型是: ' + typeof parseInt(k, 16) + '<br />');
			document.write('l = ' + l + ', parseInt(l, 2)后l = ' + parseInt(l, 2) + ', parseInt(l, 2)后l的数据类型是: ' + typeof parseInt(l, 2) + '<br />');
			document.write('l = ' + l + ', parseInt(l, 8)后l = ' + parseInt(l, 8) + ', parseInt(l, 8)后l的数据类型是: ' + typeof parseInt(l, 8) + '<br />');
			document.write('l = ' + l + ', parseInt(l)后l = ' + parseInt(l) + ', parseInt(l)后l的数据类型是: ' + typeof parseInt(l) + '<br />');
			document.write('l = ' + l + ', parseInt(l, 10)后l = ' + parseInt(l, 10) + ', parseInt(l, 10)后l的数据类型是: ' + typeof parseInt(l, 10) + '<br />');
			document.write('l = ' + l + ', parseInt(l, 16)后l = ' + parseInt(l, 16) + ', parseInt(l, 16)后l的数据类型是: ' + typeof parseInt(l, 16) + '<br />');
			document.write('m = ' + m + ', parseInt(m)后m = ' + parseInt(m) + ', parseInt(m)后m的数据类型是: ' + typeof parseInt(m) + '<br />');
			document.write('n = ' + n + ', parseInt(n)后n = ' + parseInt(n) + ', parseInt(n)后n的数据类型是: ' + typeof parseInt(n) + '<br />');
			document.write('o = ' + o + ', parseInt(o)后o = ' + parseInt(o) + ', parseInt(o)后o的数据类型是: ' + typeof parseInt(o) + '<br /><hr />');

			document.write('x = ' + x + ', parseFloat(x)后x = ' + parseFloat(x) + ', parseFloat(x)后x的数据类型是: ' + typeof parseFloat(x) + '<br />');
			document.write('y = ' + y + ', parseFloat(y)后y = ' + parseFloat(y) + ', parseFloat(y)后y的数据类型是: ' + typeof parseFloat(y) + '<br />');
			document.write('z = ' + z + ', parseFloat(z)后z = ' + parseFloat(z) + ', parseFloat(z)后z的数据类型是: ' + typeof parseFloat(z) + '<br />');
			document.write('j = ' + j + ', parseFloat(j)后j = ' + parseFloat(j) + ', parseFloat(j)后j的数据类型是: ' + typeof parseFloat(j) + '<br />');
			document.write('k = ' + k + ', parseFloat(k)后k = ' + parseFloat(k) + ', parseFloat(k)后k的数据类型是: ' + typeof parseFloat(k) + '<br />');
			document.write('l = ' + l + ', parseFloat(l)后l = ' + parseFloat(l) + ', parseFloat(l)后l的数据类型是: ' + typeof parseFloat(l) + '<br />');
			document.write('m = ' + m + ', parseFloat(m)后m = ' + parseFloat(m) + ', parseFloat(m)后m的数据类型是: ' + typeof parseFloat(m) + '<br />');
			document.write('n = ' + n + ', parseFloat(n)后n = ' + parseFloat(n) + ', parseFloat(n)后n的数据类型是: ' + typeof parseFloat(n) + '<br />');
			document.write('o = ' + o + ', parseFloat(o)后o = ' + parseFloat(o) + ', parseFloat(o)后o的数据类型是: ' + typeof parseFloat(o) + '<br />');
		</script>
	</body>
</html>

6.11.2. 效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值