2016-11-13 86 views
0

我有一些IDS我需要轉換的由強到數不過每當我使用parseInt函數()或Number(),我得到一個double類型十進制如何解析一個長數字串爲一個數字?

1.01038295007818e+016.0 

我只是需要轉換成字符串只是一個數字。

+3

你可以只提一下你想轉換爲數字的字符串嗎? – techhunter

回答

1

parseInt()函數採用串的第一數目並去除小數位,它返回一個整數:

var a = parseInt("1.000350001"); 
 
var b = parseInt("456789.1"); 
 
var c = parseInt("20"); 
 

 
console.log(a); 
 
console.log(b); 
 
console.log(c);

Math.floor()方法向下舍入數到它的最接近的整數:

var d = Math.floor("1234.00101"); 
 

 
console.log(d);

的​​函數的字符串轉換成一個數字,表示字符串值:

var e = Number("1000.12"); 
 

 
console.log(e);

對於你的問題,我相信無論是parseIntMath.floor會工作得很好,除非你數字大於JavaScripts largest available number

+1

答案是數字太大!儘管如此,謝謝你提供了額外的信息。 – deek

1

有5種不同的方式將字符串轉換爲如下編號:

parseInt函數(NUM); //默認方式(無基數)

parseInt(num,10); //使用基數(十進制)parseInt函數

parseFloat(NUM)//浮點

號(NUM); // Number構造

~~ // NUM按位不

NUM/1 //潛水由一個

NUM * 1 //通過一個

NUM乘以 - 0 // 0負

+ NUM //一元運算符 「+」

你會發現泰豐解釋Here

var s = parseInt("101038295007818e0160",10); 
alert(s); 

O/P:101038295007818e0160。

和用於:

var s = parseInt(101038295007818e0160,10); 
alert(s); 

O/P:1

var s = parseInt("101038295007818e0160"); 
alert(s); 

O/P:101038295007818e0160。

和:

var s = parseInt(101038295007818e0160); 
alert(s); 

O/P:1

希望它會幫助你。

1

你得到我因爲你試圖解析它的數量太大了。

在Javascript準確表示的最大整數

9007199254740991 

但是你的電話號碼1.01038295007818e+016.0

10103829500781800 
2

,可以在JavaScript中表示的最大整數,而不會丟失任何精度,是9007199254740991。見the javascript docs for more info。如果你想使用比這更大的整數,你將需要使用第三方庫,如Big Integer

+0

是正確的,但其他人也打敗你呢。 – deek