如何将文本字符串转换成可运算的数字
发布网友
发布时间:2022-04-23 02:46
我来回答
共2个回答
懂视网
时间:2022-05-14 14:58
推荐教程:JS教程
JavaScript是一个神奇的语言,字符串转数字有5种方法,各有各的坑法!接下来通过本文给大家介绍JavaScript字符串转数字的5种方法及其陷阱,感兴趣的朋友一起看看吧
选择哪一种呢?什么时候选择它?为什么选择这种它?我们逐一进行分析,并解析每种方式的常见陷阱。
parseInt
根据JsPerf.com的基准测试,大多数浏览器对parseInt的响应最佳。虽然它是最快的方式,但使用preseInt会碰到一些常见陷阱:
parseInt('08') // returns 0 部分老浏览器.
parseInt('44.jpg') // returns 44
parseInt: 没有传入基数时,默认是传入的基数为10 parseInt(num, 10),如果你不知道num属性的类型,不要使用parseInt进行字符串转数字。
parseFloat
如果你不解析16进制数,这是一个非常好的选择。例如:
parseInt(-0xFF) // returns -255
parseInt("-0xFF") // returns -255
parseFloat(-0xFF) // returns -255
parseFloat("-0xFF") // returns 0
注意:字符串中的负十六进制数字是一个特殊情况,如果你用parseFloat解析,结果是不正确的。为了避免程序出现NaN的情况,应该检查转化后的值。
parseFloat('44.jpg') // return 44
parseFloat: 转换十六进制数时要小心,如果你不知道要转换对象的类型,不要使用parseFloat。
按位非
可以把字符串转换成整数,但他不是浮点数。如果是一个字符串转换,它将返回0;
~~1.23 // returns 1
~~"1.23" // returns 1
~~"23" // returns 23
~~"Hello world" // returns 0
这是什么原理?通过翻转)每个位,也称为数字的A1补码。你可以使用它,但注意只能用来存储整数。所以通常情况不要用它,除非你能确定这个数是在32位整数之间的值(因为调用的ToInt32的规范)。
按位非:用它确保输入中没有字符,仅用于整数。
Number
Number与以上提及的转换方式一样存在这样的问题,解析时试图找出你给他的数字:
Number("023") // returns 23
Number(023) // returns 19
注意:023实际上是一个八进制数,无论你怎么做,都是返回19;对于没有单引号或双引号的十六进制数一样。
Number也是JsPerf中最慢的之一。
Number:几乎不用它。
一元云算符
"1.23" * 1 // returns 1.23
"0xFF" - 0 // returns 255
"0xFF.jpg" / 1 // returns NaN
+"023" // returns 23
一元运算符与其它的解析方式不同,如果是一个NaN值,那么返回的也是NaN 。这是我最喜欢的数值转换方式,因为我认为任何带有字符的对象都不应该被视为0或者根据他有多少位来“猜”。我基本使用 + 操作符,因为这个方式不容易混淆。虽然 -0 的用法也很好,但它并没有很好的表达转换为数字的本意。
字符串转换为数字的方式总结
负十六进制数字符串转换为数字时。应首先将任何其转换为String(例如通过 + "" ),然后使用一元运算符或带基数的parseInt解析为数字。但是结果不是NaN的数值时,使用parseFloat更为合适。
热心网友
时间:2022-05-14 12:06
方法主要有三种
转换函数、强制类型转换、利用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 error
3. 利用js变量弱类型转换
举个小例子,一看,就会明白了。
复制代码代码如下:
<script>
var str= '012.345 ';
var x = str-0;
x = x*1;
</script>
上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的
如何将字符串转化成数字型呢?
1、用VALUE函数将字符型数字转换成数字型,value函数可以将表示数字的文本字符串转换为数字,它的语法结构是:value(text),value函数只有一个参数text,表示要转换为数字格式的文本,文本参数可以直接引用双引号中的文本,也可以引用其他单元格中的文本。2、用四则运算法将字符型数字转换成数字型,可以使...
怎么样将字符串中的字符转换为数字?
在使用按键精灵时,要将识别后的字符串转换为数字,直接在字符串后加上0即可。例如,如果识别出的字符串是23424,添加0后,a=23424 +0,即可将其转换为数字形式存储在变量a中。在多线程环境下,为了确保正确处理,可能需要在操作前设置环境变量,如dimenv b,然后将转换后的数值赋值给b。按键精灵的强...
如何将excel文本文档转化为数字
1.在“格式”菜单上,单击“单元格”,然后单击“数字”选项卡,更改单元格的数字格式。2.重新键入数字。方法 3:使用“文本分列”命令 如果数据排列在单个列中,此方法效果最佳。下面的示例假定数据位于 A 列,首行为第 1 行 ($A$1)。要使用此示例,请按照下列步骤操作:1.选择包含文本的一列...
...为1或0,如何把这个结果转化为数字进行加法运算的?
=VALUE(A1)
如何将字符串转换成数字
1. 使用 parseInt()parseInt()解析一个字符串并返回一个整数。允许空格。仅返回第一个数字。这种方法虽然有一个限制。如果您解析十进制数,它将四舍五入到最接近的整数值,并将该值转换为string。可能需要使用parseFloat()方法进行文字转换。2. 使用 Number()Number()可用于将 JavaScript 变量转换为...
EXCEL中怎样将文本转换成数字形式?
在Excel中,您可以通过使用INDIRECT函数将文本转换为数字形式。以下是详细的步骤和示例:1. 使用INDIRECT函数:INDIRECT函数返回由文本字符串指定的引用。这个函数会立即计算引用的内容,并显示出来。当您需要更改公式中单元格的引用,而不想更改公式本身时,可以使用INDIRECT函数。2. INDIRECT函数的语法:INDIREC...
c语言字符转化为数字(如何将字符串转换为数字)
方法1:使用stringstream类或sscanf()stringstream():这是将数字字符串转换为int,float或double的简单方法。以下是使用stringstream将字符串转换为int的示例程序。输出:x的值:12345 stringstream是一种操作字符串的便捷方法。sscanf() 是类似于scanf()的C样式函数。它从字符串而不是标准输入中读取...
如何将excel表格中的字符串转换成数字
要将Excel表格中的字符串转换为数字,请按照以下步骤操作:1. 打开您想要编辑的Excel表格。2. 选中包含字符串的单元格,例如B2单元格。3. 转到菜单栏,点击“公式”选项。4. 在下拉菜单中选择“插入函数”。5. 在弹出的函数搜索框中输入“VALUE”,然后点击搜索函数。6. 选择“VALUE”函数后,设置...
excel怎么将字符串转为数值
1、用VALUE函数将字符型数字转换成数字型,VALUE函数可以将代表数字的文本字符串转换成数字,其语法结构为:VALUE(text),VALUE函数只有一个参数text,表示需要转换成数值格式的文本。text参数可以用双引号直接引用文本,也可以引用其他单元格中的文本。2、用四则运算法将字符型数字转换成数字型。可以用+0,...
excel表格如何将文本数据转换为数值数据?
数值的左上方如果加了 ' 符号(即单引号),这个数据在EXCEL表格中就会默认为是文本数值,下面说一说如何将文本数值转成常规的数字:方法一 选中单元格---右键---设置单元格格式---改"文本"为"常规"格式---再进入单元格回车确认.如果是大批量的单元格是文本格式的数值,则要一个一个的进入单元格...