Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript时,操作数上的前导0导致除法结果不同_Javascript_Math - Fatal编程技术网

使用Javascript时,操作数上的前导0导致除法结果不同

使用Javascript时,操作数上的前导0导致除法结果不同,javascript,math,Javascript,Math,如果在javascript中除以11/10,则得到1.1。如果在javascript中除以011/10,则得到0.9。是什么导致结果的差异?011是一个等于9的八进制常数 发件人: 整数可以表示为十进制(以10为基数)、十六进制(以16为基数)、和八进制(以8为基数) 整数文本的前导0(零)表示它是八进制的。八进制整数只能包括数字0-7 另请注意: 不推荐使用八进制整数文字,已从ECMA-262第3版标准中删除(在严格模式下) C++也有八进制常数。如果要处理的数字表示为字符串,则可以使用指定将

如果在javascript中除以
11/10
,则得到
1.1
。如果在javascript中除以
011/10
,则得到
0.9
。是什么导致结果的差异?

011
是一个等于9的八进制常数

发件人:

整数可以表示为十进制(以10为基数)、十六进制(以16为基数)、和八进制(以8为基数)

整数文本的前导0(零)表示它是八进制的。八进制整数只能包括数字0-7

另请注意:

不推荐使用八进制整数文字,已从ECMA-262第3版标准中删除(在严格模式下)


C++也有八进制常数。

如果要处理的数字表示为字符串,则可以使用指定将其转换为数字时所需的基数


你能解释这种行为而不仅仅是链接到bug吗。就像发生了什么。为什么加零会把值弄乱..那么结果是因为八进制常数与浮点无关..加上前面的
0
表示八进制数。就像添加
0x
表示十六进制数一样。在Java等其他语言中,您甚至可以添加表示二进制数的
0b
。这是大多数语言的共同特征。因此,
011/10=0.9
是完全正确的。也许一个关于八进制常数的问题确实证明了向下投票的合理性,但我猜向下投票和接近投票是基于一个错误的假设,即这是旧的浮点精度问题。事实并非如此,鉴于前两条评论(现已删除)都无法正确识别问题,我认为这实际上是一个有用的问题。不过,我会更改标题,以便更清楚它是关于什么的。
+'011' // 9
parseInt('011') // 9
parseInt('011', 10) // 11