js 字符串转换数字
js 字符串转换数字
方法主要有三种
转换函数、强制类型转换、利用js变量弱类型转换。
1. 转换函数:
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这
两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。一些示例如下:
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数
指定的,示例如下:
parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地
得到八进制的值。例如:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10
parseFloat()方法与parseInt()方法的处理方式相似。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。
下面是使用parseFloat()方法的示例:
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN
2. 强制类型转换
还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
可以用下面的代码段测试Boolean型的强制类型转换。
Boolean(""); //false –empty string
Boolean("hi"); //true –non-empty string
Boolean(100); //true –non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true –object
Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:
用法结果
Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100
最后一种强制类型转换方法String()是最简单的,示例如下:
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won’t work, causes an e rror
3. 利用js变量弱类型转换
举个小例子,一看,就会明白了。
var str= '012.345 ';
var x = str-0;
x = x*1;
上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的
JS数学函数的调用
1 SQRT1_ 2 属性返回 2 的平方根的倒数。这个值近似为 0.7071067811865476。语法 Math.SQRT1_2 实例 返回 1/2 的平方根: 输出: SQRT1_2: 0.7071067811865476 2 SQRT2 属性返回 2 的平方根。这个值近似为 1.4142135623730951。 语法 Math.SQRT2 实例 返回 2 的平方根: 输出: SQRT2: 1.4142135623730951
3 strike() 方法用于显示加删除线的字符串。 语法 stringObject.strike() 实例 在本例中,"Hello world!" 将被加上一条删除线: 4 String() 函数把对象的值转换为字符串。 语法 String(object) 参数描述 object 必需。JavaScript 对象。 实例 在本例中,我们将尝试把不同的对象转换为字符串: 输出: Tue, 21 Feb 2017 10:51:34 UTC 例子 2 在下面的例子中,我们将把具体的日期转换为(根据 GMT)字符串: 输出: Wed, 20 Jul 1983 17:15:00 UTC 2 toLocaleDateString() 方法可根据本地时间把 Date 对象的日期部分转换为字符串,并返回结果。 语法 dateObject.toLocaleDateString() 返回值 dateObject 的日期部分的字符串表示,以本地时间区表示,并根据本地规则格式化 3 toLocaleLowerCase() 方法用于把字符串转换为小写。 语法 stringObject.toLocaleLowerCase() 返回值 一个新的字符串,在其中 stringObject 的所有大写字符全部被转换为了小写字符。 说明 与 toLowerCase() 不同的是,toLocaleLowerCase() 方法按照本地方式把字符串转换为小写。只有几种语言(如土耳其语)具有地方特有的大小写映射,所有该方法的返回值通常与 toLowerCase() 一样。 实例
c语言字符串与数字的相互转换
函数atof,atoi,atol,strtod,strtol,strtoul atof(将字串转换成浮点型数)相关函数atoi,atol,strtod,strtol,strtoul 表头文件#include
【JS】Java判断字符串是否为空的三种方法
以下是Java 判断字符串是否为空的三种方法. 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低. 方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法. 方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二. 以下代码在我机器上的运行结果: (机器性能不一, 仅供参考) function 1 use time: 141ms function 2 use time: 46ms function 3 use time: 47ms */ public class CompareStringNothing { String s = ""; long n = 10000000; private void function1() { long startTime = System.currentTimeMillis(); for(long i = 0; i if(s == null || s.equals("")); } long endTime = System.currentTimeMillis(); System.out.println("function 1 use time: "+ (endTime - startTime) +"ms"); } private void function2() { long startTime = System.currentTimeMillis(); for(long i = 0; i< n; i++) { if(s == null || s.length() <= 0); } long endTime = System.currentTimeMillis(); System.out.println("function 2 use time: "+ (endTime - startTime) +"ms"); } private void function3() { long startTime = System.currentTimeMillis(); for(long i = 0; i if(s == null || s.isEmpty()); } long endTime = System.currentTimeMillis(); System.out.println("function 3 use time: "+ (endTime - startTime) +"ms"); }
c++将字符串转为数字——整型浮点型通用
注:没有编译过,若要复制可能需要改动内容。 此段代码,仅提供逻辑参考! double strTodouble(char *string) { String str = string; String strDes; //判断是否含有非法字符 if (*string == '+' || *string == '-') strDes = str.substr(1); else strDes = str; If(strDes.SpanIncluding(“+-0123456789.”) != strDes) { cout<<”非法的数值,无法转换”<