为什么我不能在javascript中为大数字添加1

时间:2013-03-10 02:39:03

标签: javascript biginteger

var i = 20040115102010000;

i++;

returns 20040115102010000;

我是否必须使用大数字库?

What is the standard solution in Javascript for handling big numbers (BigNum)?

此数字已经采用浮点格式,我将小数位移到左侧三次。如果您的速度很快,您会注意到它是一个约会。我先把这个号码转换成日期格式吗?我会发现在Date()对象中以毫秒为单位递增更容易吗?

1 个答案:

答案 0 :(得分:2)

你不能使用javascript中的大日期,也不能使用bigDay库来处理你的bignums。

/ *

来自“https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date”:

自从UTC时间1970年1月1日午夜起,JavaScript日期以毫秒为单位。一天持有86,400,000毫秒。相对于UTC时间1970年1月1日,JavaScript Date对象范围是-100,000,000天到100,000,000天。 * /

var firstday=new Date(1970,0,1),lastday=new Date(1969,11,31);

firstday.setDate(firstday.getDate()-100000000);

lastday.setDate(lastday.getDate()+100000000);

firstday.toUTCString()+'; timestamp: '+firstday.getTime()+'\n'+
lastday.toUTCString()+'; timestamp: '+lastday.getTime();

/ *返回值:( JS中的最大和最小日期)

星期二,2月20日 - 271821 04:00:00 GMT;时间戳:-8639999985600000

Fri,12 Sep 275760 04:00:00 GMT;时间戳:8639999928000000 * /