JS字符串和数字互相转换的n种方法

您所在的位置:网站首页 js字符转化为数字的方法 JS字符串和数字互相转换的n种方法

JS字符串和数字互相转换的n种方法

2024-06-08 06:24| 来源: 网络整理| 查看: 265

字符串转数字

方法主要有三种: 转换函数、强制类型转换、利用JS变量弱类型转换。

1. 转换函数parseInt() & parseFloat()

这二者都是JS全局函数。

1.1. parseInt()

1)parseInt()函数可解析一个字符串,并返回一个整数。 2)语法:parseInt(string, radix)。

string必选,表示被解析的字符串。 radix可选,表示要解析的数字的基数。 radix介于 2 ~ 36 之间。 如果radix缺省或其值为 0,则根据string开头来解析。 如果小于 2 (!= 0)或者大于 36,返回NaN。 string以 0X 或 0x 开头,以 16 为基数。 以 0 开头,以8或16为基数。 以 1 ~ 9 的数字开头,以10为基数。 1.2 parseFloat() parseFloat()函数可解析一个字符串,并返回一个浮点数。 语法:parseFloat(string) 1.3 Tips 开头和结尾的空格是允许的。字符串中间的空格不被允许。 如果第一个字符不能被转换为数字,返回NaN。 如果只想解析数字的整数部分,使用parseInt()。 如果在解析过程中遇到了正负号(+ 或 -)、数字 (0-9)、小数点,或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的数字。即只有字符串中的第一个数字会被返回。 返回值为Number类型。 2. 强制类型转换

JS有三种转型函数。

Boolean() —— 转换为对应的布尔值 Number() —— 转换为对应的数值 String() —— 转换为对应的字符串 2.1 Boolean()转换规则 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 ""(空串) Number 任何非零数值(包括无穷大) 0和NaN Object 任何对象 null Udefined n/a undefined 2.2 String()转换规则 如果值有toString()方法,调用该方法 值为null,返回 'null' 值为undefined,返回 'undefined' 2.3 Number()转换规则 Boolean值。Number(true) == 1、Number(false) == 0 Number值。简单的传入和返回。 Number(null) == 0 Number(undefined) == NaN 字符串 转换规则同parseInt() / parseFloat() 空串转换为0 不包含数字的串返回NaN 对象。调用valueOf()或者toString()方法。关于这二者的区别,参考JavaScript的toString()和valueOf()区别到底是什么 3. JS变量弱类型转换

本质是算术运算

3.1 一元'+'操作符 转换规则同Number() 3.2 乘性操作符 如果有一个操作数不是数值,则调用Number()将其转化为数值,而后计算。 3.3 加性操作符

3.3.1 加法

两个操作数都是数值,执行常规的加法计算 只要有一个操作数为字符串,则字符串拼接

3.3.2 减法

两个操作数都是数值,执行常规的减法计算 非数值操作数,先转化为数值,而后按照数值计算 3.4 例子 var str = '012.345 '; var x = str - 0; var y = str * 1; console.log(x, typeof x); // 12.345 number console.log(y, typeof y); // 12.345 number 数字转字符串 1. String()强制转换 2. '+'字符串拼接

var num = 3; console.log(num + '');

3. Number类型内置方法 3.1 toString()

toString()方法可以传递一个表示基数的参数,表示返回几进制数值的字符串形式。

var num = 10; console.log(num.toString()); // '10' console.log(num.toString(2)); // '1010' console.log(num.toString(8)); // '12' console.log(num.toString(10)); // '10' console.log(num.toString(16)); // 'a' 3.2 toFixed()

toFixed()按照指定的小数位返回数值的字符串表示。如果数值本身包含的小数位比指定的还多,那么接近制定的最大小数位的值就会舍入。

var num1 = 10, num2 = 10.005; console.log(num1.toFixed(2), num2.toFixed(2)); // '10.00' '10.01' 3.3 toExponential()

toExponential()方法返回以指数表示法表示的数值的字符串形式。也可以接受一个参数,用以指定输出结果中的小数位数。

var num = 10; console.log(num.toExponential(1)) // '1.0e + 1' 3.4 toPrecision()

toPrecision()方法返回固定大小格式,也可能会返回指数格式。该方法也可以接受一个参数,用以表示数值的所有数字位数(不包括指数部分)。

var num = 99; // 为了将99用一位数表示出来,四舍五入成了100 console.log(num.toPrecision(1)); // '1e + 2' console.log(num.toPrecision(2)); // '99' console.log(num.toPrecision(1)); // '99.0'

由上面的代码可以看出,toPrecision()方法会根据要处理的数值决定到底是调用toFixed()还是toExponential()。而这三个方法都可以通过向上或者向下舍入,做到以最准确的形式来表示带有正确小数位的值。

END~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3