字符串数字比较大小
开发中两次遇到这种问题,第二次遇到的时候还是在疑惑,想了一会立马想起来在开发小程序退款交易的时候遇到过此问题,遂记录下来。
问题:两个input框中的 “数字”比较大小,会出现“2”>"11"的情况,就是判断有时能够达到预期有时不能达到预期。
分析:起初一直在自查代码逻辑的问题,检查了很久发现并没有任何问题,后来猛然发现,比较的不是数字而是字符串,这种就属于字符串和字符串之间的大小比较,这种比较就为Ascll码比较。
解决:将字符串数字转化为数字来比较
转换:
-
js变量弱类型转换 -0,*1,
-
转换函数 用parseint() 分析字符串并返回整数。parseFloat()将值转换为浮点数 (针对字符串数字)
总结:
-
数字和数字比较 没什么好说的
-
数字和字符串数字比较 (将字符串转化为纯数字来比较)
-
字符串数字之间比较 (就如我们遇到的问题)这种比较为ASCII码比较,依次取每个字符
-
字符串比较(也是ASCII码比较)