Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 Number.t在Firefox和Chrome中尝试不同的预设_Javascript_Google Chrome_Firefox_Tostring - Fatal编程技术网

Javascript Number.t在Firefox和Chrome中尝试不同的预设

Javascript Number.t在Firefox和Chrome中尝试不同的预设,javascript,google-chrome,firefox,tostring,Javascript,Google Chrome,Firefox,Tostring,这个简单的代码(1/3).toString(17).length在Firefox(16)和chrome(1101)中输出不同的数字 我在寻找一个解释,为什么Chrome和Firefox的Number.toString实现不同。Chrome给出了一些基数的荒谬数字。使用常用的基数2、8、10和16可以很好地工作,但是许多其他的基数给出的数字远远超出了Number类型所能达到的精度 测试用例:两种情况下的确切输出是什么?@JanDvorak,chrome=1101,ff=16,我想。自从我在Chr

这个简单的代码
(1/3).toString(17).length
在Firefox(16)和chrome(1101)中输出不同的数字


我在寻找一个解释,为什么Chrome和Firefox的
Number.toString
实现不同。

Chrome给出了一些基数的荒谬数字。使用常用的基数2、8、10和16可以很好地工作,但是许多其他的基数给出的数字远远超出了
Number
类型所能达到的精度


测试用例:

两种情况下的确切输出是什么?@JanDvorak,
chrome=1101
ff=16
,我想。自从我在Chrome的控制台上拿到1101。那是很多十进制数字。。。可能是一个bug?
toString(17)
引起了这个问题。。。如果删除,则数字长度相同。下面还返回不同的字符串
(1/3)。toString(17)
。。。firefox似乎在某种程度上对数字进行了取整。但是我没有理由@Adween基地19、23等似乎也挑起了这个问题。。。问题是这有多重要。你知道为什么会这样,或者这是一个bug吗?在不寻常的情况下是否有正确行为的规范?@JanDvorak:这肯定是一个bug,因为结果是不合理的。规范(ECMA-262版本5.1)15.7.4.2说,该算法依赖于实现,但它应该是9.8.1(
Number.toString()
)中算法的推广,基本上说,数字的数量应该尽可能小,以完全精确地再现数字。我阅读了您的答案“按设计-这里是源代码测试”@Viller:是的,他们编写了这样的代码,当时可能只测试了最常见的基类,后来发现其他基类不能以最佳方式工作。他们知道这个问题,但还没有解决,因为它的优先级很低。