javascript字符串数字转化函数parseInt的奇怪现象

今天突然产品找我说,一个网页无法提交信息,错误是“网页弹出提示信息:表单A的值必须小于表单B的值,但是的确是小于啊,怎么还是提示?”

我看了看,javascript代码如下:

 

if(parseInt(A.value)>=parseInt(B.value))

    alert("表单A的值必须小于表单B的值");

 

其中A.value=0113

B.value=0119

 

A转换成整数的确小于B转化成整数,问题出在哪里呢??

打印parseInt(A.value)和parseInt(B.value),分别是75和9,晕了。

 

查了查文档:

parseInt 方法

返回由字符串转换得到的整数。

parseInt(numString, [radix])

参数

numString

必选项。要转换为数字的字符串。

radix

可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

 

汗,暴汗,用了好几年的一个函数,居然没有留意这个函数有第二个参数,表示转换整数的进制,而且如果字符串第一个数字是0,将按照8进制处理。

本例中,因为0113八进制变成10进制即为75,而0119转换到9的时候出错(八进制里没有九啊),忽略下一个字符返回结果,结果为011,即9。

 

本例中正确调用方法如下:

if(parseInt(A.value,10)>=parseInt(B.value,10))

    alert("表单A的值必须小于表单B的值");

时间: 2024-10-27 09:08:27

javascript字符串数字转化函数parseInt的奇怪现象的相关文章

Javascript将数字转化成为货币格式字符串_javascript技巧

这里第一个方法是用JavaScript将数字number转换为货币字符串的格式(参数:保留小数位数,货币符号,整数部分千位分隔符,小数分隔符) 这里第二个方法是用简单的正则表达式将货币字符换转换为纯净的数字字符串,之后便可以将字符串转换为数字number JavaScript Money Format(用prototype对Number进行扩展) // Extend the default Number object with a formatMoney() method: // usage:

5个javascript的数字格式化函数分享_javascript技巧

十进制四舍五入 这两段代码帮助你做到四舍五入,对于你显示价格或者订单比较有用: 代码1: 复制代码 代码如下: function CurrencyFormatted(amount) { var i = parseFloat(amount); if(isNaN(i)) { i = 0.00; } var minus = ''; if(i < 0) { minus = '-'; } i = Math.abs(i); i = parseInt((i + .005) * 100); i = i / 10

JavaScript字符串常用操作函数之学习笔记

字符串简介 使用英文单引号或双引号括起来,如:'Hello',"World",但是不能首尾的单引号和双引号必须一致,交错使用,如果要打印单引号或者双引号,可以使用转义字符\'(单引号),\"(双引号)  代码如下 复制代码 var str_1 = 'Hello World!';  //Hello World! var str_2 = "Hello World!";  //Hello World! var str_3 = '他说:"这样可以的.&q

分享几款javascript数字格式化函数

Javascript没有任何内建的格式化函数,这里我们通过Google收集了5个javascript的数字格式化函数,希望对于大家的web开发能够带来方便. 十进制四舍五入 这两段代码帮助你做到四舍五入,对于你显示价格或者订单比较有用: 代码1:  代码如下 复制代码 function CurrencyFormatted(amount) {     var i = parseFloat(amount);     if(isNaN(i)) { i = 0.00; }     var minus =

用iitao(num,buff,10)将数字转化为字符的函数之前需要声明吗?头文件是什么?

问题描述 用iitao(num,buff,10)将数字转化为字符的函数之前需要声明吗?头文件是什么? 急急急,,之前需要声明吗?头文件是什么? 用iitao(num,buff,10)将数字转化为字符的函数之前需要声明吗?头文件是什么? 解决方案 是itoa,integer to ascii的缩写 解决方案二: itoa, 用 法:char *itoa(int value, char *string, int radix); 是英文integer to array(将int整型数转化为一个字符串,

java-Java字符串数字转化为double类型不用Integer.parseInt

问题描述 Java字符串数字转化为double类型不用Integer.parseInt 当用了split()方法分离字符串的整数部分和小数部分后,两部分都存在了两个字符数组里,我怎么才能把每一个字符数组的每一位读出来进行转化呢 解决方案 double d = 0.0; String[] s = "123.456".split("."); for (int i = 0; i < s[0].length; i++) { d *= 10; d +=s.toCharA

VC Afx全局函数  数据类型 字符串转化函数

转自: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1652126 Afx全局函数及MFC常见数据类型AfxBeginThread:开始一个新的线程 AfxEndThread:结束一个旧的线程 AfxFormatString1:类似printf一般地将字符串格式化 AfxFormatString2:类似printf一般地将字符串格式化 AfxMessageBox:类似Windows API 函数 MessageBox AfxOuputDebugSt

JavaScript字符串插入、删除、替换函数使用示例

本文为大家介绍下JavaScript字符串的插入.删除.替换函数的在实际中的应用,想要学习的朋友可以参考下哈,希望对初学者有所帮助   说明: 以下函数中前两个函数取出查找字符串的前一部分和后一部分,以用于其他函数.注意,调用一次 replaceString(mainStr,searchStr,replaceStr) 函数,只能将字符串 mainStr 中最先找到的一个 searchStr 字符串替换为 replaceStr 字符串,并不能将字符串 mainStr 中所有的 searchStr

javascript字符串对象常用api函数小结(连接,替换,分割,转换等)_javascript技巧

本文实例讲述了javascript字符串对象常用api函数.分享给大家供大家参考,具体如下: 1. concat(str1,str2,···) 连接字符串 2. indexOf(str,start) 返回 str 在字符串中首次出现的位置 var str = "hello world"; str.indexOf("hello"); // 0 str.indexOf("o",5); // 7 str.indexOf("World"