5

正の整数の前にいくつかのゼロがあります。ゼロを削除して、正の整数だけが残るようにします。「001」のように「1」だけになります。最も簡単な方法は、parseInt( '001')を使用することだと思いました。しかし、私が発見したのは、8と9では機能しないことです。例parseInt( '008')は、'8'ではなく'0'になります。

htmlコード全体は次のとおりです。

<html> <body>
<script>
var integer = parseInt('002');
document.write(integer);

</script>
</body> </html>

しかし、どういうわけかこの問題を報告できますか?誰かがこの問題の別の簡単な回避策を知っていますか?

4

4 に答える 4

15

数値の基数(基数)を指定する必要があります

parseInt('01', 10);
于 2010-12-19T04:07:59.080 に答える
10

これは文書化された動作です:http ://www.w3schools.com/jsref/jsref_parseInt.asp

先頭に「0」が付いている文字列は、8進数であるかのように解析されます。

于 2010-12-19T04:06:02.330 に答える
3

接頭辞がゼロの数値は8進数として解析されます。

于 2010-12-19T04:06:11.067 に答える
1

これは実際にはバグではありません。従来の理由により、0で始まる文字列は8進数で解釈され、8進数では数字8はありません。これを回避するには、基数(つまりparseInt("008", 10))を明示的に渡す必要があります。

于 2010-12-19T04:10:44.460 に答える