2012-08-13 58 views
0

我有以下代碼JSON.stringify()誤差在JavaScript

var number = 0618260587 

JSON.stringify(number) 

字符串化結果是618260587,第一個零被自動截斷。

我嘗試以下修復

if(number.length<8) 
     { 
     var book1 = "0" + number; 
     alert(book1); 

但它提醒不確定。我不知道

1)爲什麼將字符串數據截斷第一個零 2)我想的JavaScript添加了兩個變量,不論類型的

回答

5

前導零的顯示的東西,而不是通常的數字的一部分。在每個數字之前/之後有無數個不可見的零,但通常不會顯示。如果你想前導零,治療的數量作爲一個字符串:

var number = '0618260587'; 

而且,在多數,擁有國內領先的數字爲零被視爲八進制,不是小數。約八進制的警告,它看起來像一個十進制給你,但它的一些完全不同的號碼口譯員,如..

0618260587 octal = 1616431 decimal 
+1

+1 - 純前導零會導致由於這種難以跟蹤的錯誤。在他的情況下(至少在Firefox上),它實際上是一個小數,因爲他有8位數。如果你將8改爲6,它將變成八進制。在某處存在無效的八進制數字時,此回退是否爲小數? – Thilo 2012-08-13 02:20:15

+0

包括八進制+1。 – Blender 2012-08-13 02:20:20

+0

謝謝你的解釋!我會做到這一點,但我需要的輸入是一個數字,然後將其串化。我嘗試製作的修補程序有什麼問題? – alex 2012-08-13 02:21:21