相关疑难解决方法(0)

我如何解决JavaScript的parseInt八进制行为?

尝试在JavaScript中执行以下操作:

parseInt('01'); //equals 1
parseInt('02'); //equals 2
parseInt('03'); //equals 3
parseInt('04'); //equals 4
parseInt('05'); //equals 5
parseInt('06'); //equals 6
parseInt('07'); //equals 7
parseInt('08'); //equals 0 !!
parseInt('09'); //equals 0 !!
Run Code Online (Sandbox Code Playgroud)

我刚刚学会了JavaScript认为前导零指示八进制整数的困难方式,并且由于没有"8""9"在base-8中,该函数返回零.无论喜欢与否,这都是设计的.

解决方法有哪些?

注意:为了完整起见,我即将发布解决方案,但这是我讨厌的解决方案,所以请发布其他/更好的答案.


更新:

JavaScript标准的第5版(ECMA-262)引入了一个突破性的变化,消除了这种行为.Mozilla 写得很好.

javascript integer octal

280
推荐指数
8
解决办法
6万
查看次数

13
推荐指数
2
解决办法
397
查看次数

为什么JavaScript将数字视为八进制,如果它具有前导零

var x = 010;
console.log(x); //8
Run Code Online (Sandbox Code Playgroud)

JS引擎将数字x转换为八进制数.为什么会这样?我该怎样预防呢?

javascript

12
推荐指数
1
解决办法
2085
查看次数

在JavaScript中,eval(010)返回8

如果我使用代码:

string = '010';
write = eval(string);
document.write(write)
Run Code Online (Sandbox Code Playgroud)

我在页面上写了8个.为什么?即使010不是字符串,也会发生这种情况.

javascript

7
推荐指数
1
解决办法
3450
查看次数

为什么JavaScript将parseInt(0000000101126)转换为33366而不是101126?

为什么JavaScript将parseInt(0000000101126)转换为33366而不是101126?

var example = parseInt(0000000101126);
console.log(example); //33366 
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
1
解决办法
213
查看次数

Javascript - 将数字转换为将数字转换为某个不同数字的数字.不明白为什么会这样?

某个数字的前导零,将数字转换为某种未知数字格式.例如 :

017 正在转变为 15

037 正在转变为 31

还发现在末尾具有8 0r 9的数字保持相同,例如:

01818

03838

o5959

我发现的另一件事是

对于每个下一个10的范围,转换值和实际值之间的差值增加2

例如 :

对于范围 00-09 差异, 0 即07的值将是7,04将是4

对于范围 010-019 差异, 2 值为017将为15,013将为11

对于范围 020-029 差异, 4 值027将为23,021将为17

等等..

这是一个测试的snipet http://jsfiddle.net/rajubera/BxQHF/

我不明白为什么会发生这种情况?

请帮我如何从前导零的数字中得到正确的十进制数?

javascript jquery

4
推荐指数
1
解决办法
1254
查看次数

前缀零会在数量增加时更改输出

我试图在Javascript中添加两个数字:

 var output;
 output = parseInt(a)+parseInt(b);
 alert(output);
Run Code Online (Sandbox Code Playgroud)

它给出了错误的output价值,例如if a = 015b = 05.为什么会这样?上述例子的预期结果应为20.

javascript

2
推荐指数
1
解决办法
238
查看次数

为什么 (00123 + 34351) 在 javascript、java 和 python 中返回 34434?正确答案是 34474

console.log(00123 + 34351); //in javascript, outputs 34434
print(00123 + 34351); //in python, outputs 34434
Run Code Online (Sandbox Code Playgroud)

在javascript中,在python中输出34434,输出34434

然而,去除前导零,即 (123 + 34351) 给出正确答案,即 34474

javascript python math base addition

0
推荐指数
1
解决办法
136
查看次数

javascript在任何数字之前不接受0

var value = 05000;
var addValue = 1;
Run Code Online (Sandbox Code Playgroud)

如果我计算 value + addvalue,那么它正在计算错误的值

 var result = value + addValue;// it's return value is 20481
Run Code Online (Sandbox Code Playgroud)

从快速观察结果中看到下面的图像

在此输入图像描述

但是如果我将值赋予5000(在值之前没有0),那么它的计算是正确的.为什么?

javascript calculator angularjs

-3
推荐指数
1
解决办法
543
查看次数

标签 统计

javascript ×9

addition ×1

angularjs ×1

base ×1

calculator ×1

html ×1

integer ×1

jquery ×1

math ×1

octal ×1

python ×1