当前位置: 首页 > 编程日记 > 正文

js 字符串转换成数字的 三种方法

在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形式的.在网上找了一下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 error

3. 利用js变量弱类型转换

举个小例子,一看,就会明白了。

复制代码 代码如下:

<script>
var str= '012.345 ';
var x = str-0;
x = x*1;
</script>

上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的

转载于:https://www.cnblogs.com/zlq92/p/7840174.html

相关文章:

Web 开发与设计之 Google 兵器谱

Google 的使命是 Web&#xff0c;在 Google 眼中&#xff0c;未来的一切应用都将 Web 化&#xff0c;一直以来&#xff0c;Google 为 Web 开发与设计者推出了大量免费工具&#xff0c;让他们更好地创建&#xff0c;维护&#xff0c;改善他们的 Web 站点&#xff0c;这些工具包含…

html5新标签使用

HTML 5 视频标签<video> <video width"320" height"240" controls"controls"><source src"/i/movie.ogg" type"video/ogg"><source src"/i/movie.mp4" type"video/mp4">Your b…

调查:“AI红娘”来了,有一半人选择相信TA

作者&#xff1a;REN来源&#xff1a;数据实战派七夕AI红娘来了前言你会相信人工智能&#xff08;AI&#xff09;给你推荐的约会对象吗&#xff1f;最近&#xff0c;卡巴斯基的一项全球调查显示&#xff0c;在使用交友或约会软件时&#xff0c; 44% 的受访者愿意接受 AI 或算法…

Mysql技术内幕——InnoDB存储引擎

一&#xff0e;mysql体系结构和存储引擎 1.1、数据库和实例的区别 数据库&#xff1a;物理操作系统或其他形式文件类型的集合。在mysql下数据库文件可以是frm&#xff0c;myd&#xff0c;myi&#xff0c;ibd结尾的文件。 数据库实例&#xff1a;由数据库后台进程/线程以及一个共…

jQuery插件开发 - 其实很简单

【前言】jQuery已经被广泛使用&#xff0c;凭借其简洁的API&#xff0c;对DOM强大的操控性&#xff0c;易扩展性越来越受到web开发人员的喜爱&#xff0c;我在社区也发布了很多的jQuery插件&#xff0c;经常有人询问一些技巧&#xff0c;因此干脆写这么一篇文章给各位jQuery爱好…

直接选择排序算法

直接选择排序算法 1、选择排序 #include <stdio.h> #include <stdlib.h> #define N 5 //排序的数据个数 typedef struct Num {int data[N-1];int length; }Num;int main(int argc, char *argv[]) {int i,j,min;struct Num La;printf("请输入您要排序的数字序…

大厂的面试官是如何挑人的?

马上就又要到金九银十求职的黄金期了&#xff0c;最近找了很多资深面试官聊天&#xff0c;他们说其实他们每天都要面试考核很多应聘者&#xff0c;但是通过的人却寥寥无几。。为了帮助大家更好的了解大厂面试的知识方向&#xff0c;特别拿出了某大厂大佬整理的非常全面的大厂 A…

使用Mono管理Coyote Linux

Coyote是一个个人防火墙配置Linux的目的是为了保护家庭或教育网络. 这个防火墙产品牌的个人及教育用途,并提供免费下载&#xff1a;http://coyotelinux.com/ CoyoteLinux uses Mono for syadmin tools http://www.coyotelinux.com.cn/index.htm 本文转自 张善友 51CTO博客&…

介绍几款浏览器兼容性测试工具

昨天和朋友聊到了有关浏览器兼容性的问题&#xff0c;在开发中有时的确很让人苦恼&#xff0c;我向他推荐了几款测试浏览器兼容的工具&#xff0c;分享给大伙&#xff0c;有什么更好的工具或是解决方法还希望大家拿出来晒一晒。 IETester 这是我最先用的测试浏览器兼容性的工…

关于android.view.WindowLeaked(窗体泄露)的解决方案

虽然是小问题一个&#xff0c;但也困扰了我一段时间&#xff0c;现在记下来&#xff0c;给自己做个备忘&#xff0c;也可以给其他人一个参考 Java代码 view plaincopy to clipboardprint? 01-08 01:49:27.874: ERROR/WindowManager(473): Activity com.photos.MainActivity …

英伟达推出全球首个元宇宙平台,豪砸数亿是为什么?

编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) NVIDIA 在 SIGGRAPH 推出首个全球元宇宙平台&#xff0c;并赢得了最佳展示奖。目前处于公测阶段&#xff0c;它对 NVIDIA RTX 和 GeForce RTX GPU 用户免费开放。用户在安装完 NVIDIA Studio 驱动程序后&#xff0c;即可获得…

route命令相关整理

目录&#xff1a; 1. 使用背景 2. route命令 2.1 打印路由信息 2.2 删除路由信息 2.3 添加路由信息 3. 应用实例 3.1 详解案例 3.2 内外网同时上网办法集锦 4、“路由添加失败&#xff0c;找不到元素” 1. 使用背景 需要接入两个网络&#xff0c;一个是部署环境所在内网…

ASP.NET画图控件 Chart Control 免费控件

.NET3.5中中推出了图表控件&#xff0c;可以同时支持Web和WinForm两种方式&#xff0c;由于平时很少使用&#xff0c;一直没有玩玩&#xff0c;闲来无事&#xff0c;简单研究了下&#xff0c;感觉功能真的很强大&#xff0c;基本上可以满足各种图表的应用&#xff0c;感觉这么好…

一步步学敏捷开发:开篇

一步步学敏捷开发&#xff1a;开篇 http://www.cnblogs.com/jetlian/p/3913687.html

算法也是颜值控,Twitter AI更青睐肤白貌美图

【CSDN 编者按】这是不是一个看脸的世界&#xff0c;谁都说不准&#xff0c;但是近期有研究人员发现&#xff0c;Twitter有这样一种AI算法&#xff1a;更青睐于身材好、皮肤白的年轻人的图片&#xff0c;哪怕这些图片经美图软件加工过。具体的情况究竟如何&#xff1f;下面这篇…

esxi4.1使用IDE格式磁盘

1、今天用workstation的“import and export”工具将DataOnTap系统迁移到esxi4.1下面了&#xff08;具体转换方法可以参考http://taotao1240.blog.51cto.com/731446/656853&#xff09;好开心啊&#xff0c;但是启动虚拟机的时候悲剧了&#xff0c;提示“在此版本中&#xff0c…

jQuery 表格插件汇总

本文搜集了大量 jQuery 表格插件&#xff0c;帮助 Web 设计者更好地驾御 HTML 表格&#xff0c;你可以对表格进行横向和竖向排序&#xff0c;设置固定表头&#xff0c;对表格进行搜索&#xff0c;对大表格进行分页&#xff0c;对表格进行滚动&#xff0c;拖放操作等等。这些插件…

程序员门槛再被“神器”降低:只要会英文,就能写代码!

近日&#xff0c;OpenAI带着他们最新、最神自动编码神器Codex霸榜各大科技媒体头条&#xff0c;我们知道OpenAI是微软投资的通用人工智能平台&#xff0c;而GitHub是微软旗下的代码托管平台&#xff0c;这样微软出算力、OpenAI出技术、GitHub出代码的AI编程铁三角就产生了&…

微软职位内部推荐-Software Engineer II-News

微软近期Open的职位:News is a critical areas for integration of mobile and services, one of the top priorities in Microsoft. Microsoft is innovating rapidly to grow its share of this market by providing the news industry with a world-class News platform and…

css3中的box-sizing属性

盒子宽度、高度计算公式&#xff1a;css元素宽度 width padding bordercss元素高度 height padding border css3之前&#xff0c;当我们需要呈现一个宽度为200px的盒子时&#xff0c;我们需要减去它本身的内边距、边框&#xff0c;然后得知属性的width应该设置为多少。例…

影响Lucene索引速度原因以及提高索引速度技巧

在网上看了一篇外文文章&#xff0c;里面介绍了提高Lucene索引速度的技巧&#xff0c;分享给大家。先来看下影响索引的主要因素&#xff1a; MaxMergeDocs该参数决定写入内存索引文档个数&#xff0c;到达该数目后就把该内存索引写入硬盘&#xff0c;生成一个新的索引segment文…

java 反射 动态代理

在上一篇文章中介绍Java注解的时候&#xff0c;多次提到了Java的反射API。与javax.lang.model不同的是&#xff0c;通过反射API可以获取程序在运行时刻的内部结构。反射API中提供的动态代理也是非常强大的功能&#xff0c;可以原生实现AOP中 的方法拦截功能。正如英文单词refle…

公路病害检测有了“智慧眼”,思谋AI“助力”广东省高速公路

近日&#xff0c;思谋科技与广东省某高速企业达成合作&#xff0c;智慧交通一体化平台病害检测模块已成熟落地&#xff0c;将使广东省高速公路病害检测进入高频率、高效率、智能化时代&#xff0c;以行业领先的AI技术助力智慧交通产业的发展。 近年来&#xff0c;我国公路建设…

无准备,不编程——计算机达人成长之路(15)连载

8、俄罗斯方块&#xff08;三&#xff09;编码 嬉闹归嬉闹&#xff0c;最终二人静下心来&#xff0c;绍绍开始请教俄罗斯方块的设计&#xff0c;木鸿飞也不藏拙&#xff0c;马上开始讲解&#xff1b;“游戏其实分为三重循环&#xff0c;也就是可以分为三个部分。” “哪三个&am…

Memcached 缓存系统的-介绍、安装以及应用

一. memcached 是什么?memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.memcached是一个高性能的、分布式内存对象缓存系统&am…

被算法“监控”的打工人,这家公司 150 人被算法裁定为“不敬业”

整理 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近日&#xff0c;一家公司通过 AI 算法裁掉三成员工的消息在网上引起热议。当你上班时突然收到一封邮件显示“效率低下”而要求马上离开公司&#xff0c;你会怎么想呢&#xff1f; 据 Game World Obser…

(转)I 帧和 IDR 帧的区别

I 帧和 IDR 帧的区别&#xff1a;http://blog.csdn.net/skygray/article/details/6223358 IDR 帧属于 I 帧。解码器收到 IDR frame 时&#xff0c;将所有的参考帧队列丢弃 &#xff08;用x264_reference_reset 函数实现——在 encoder.c 文件中&#xff09; 。这点是所有 I 帧…

ExtJs 备忘录(3)—— Form表单(三) [ 数据验证 ]

正文一、资料 1.1. 表单提示的方式设置&#xff0c;如&#xff1a; Ext.form.Field.prototype.msgTargetside 该设置为枚举值&#xff1a;qtip,side,title,under qtip&#xff1a;把鼠标移动到控件就可以显示提示信息了&#xff0c;有点像设置了title的input标签一样的效果…

Dynamo 以及一致性哈希简介

本介绍参考 Amazon 的 Dynamo 论文。需要更详细更准确信息的同学请直接阅读原文。 (原文地址http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf) 这篇论文本身没提出什么新的思想&#xff0c;正如论文中所说&#xff0c;贡献在于把非常多的技术结…

如何更快速加载你的JS页面

确保代码尽量简洁 不要什么都依赖JavaScript。不要编写重复性的脚本。要把JavaScript当作糖果工具&#xff0c;只是起到美化作用。别给你的网站添加大量的JavaScript代码。只有必要的时候用一下。只有确实能改善用户体验的时候用一下。 尽量减少DOM访问 使用JavaScript访问DOM元…