2016-11-13 32 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

相关问题