为什么我不能在javascript中添加1个大数字
问题描述:
var i = 20040115102010000;
i++;
returns 20040115102010000;
我必须使用大号码库吗?为什么我不能在javascript中添加1个大数字
What is the standard solution in Javascript for handling big numbers (BigNum)?
这个数字已经在浮点格式和我感动的小数位的左三圈。如果你的速度很快,你会注意到它是一个日期。我会先把这个数字转换成日期格式吗?我会发现在Date()
对象中以毫秒为单位增加更容易吗?
答
您不能在javascript中使用大的日期,而无需使用bigDay库来处理您的数字。
/*
从 'https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date':
自午夜01月01日的javascript日期以毫秒为单位,1970年UTC。一天持有86,400,000毫秒。相对于1970年1月1日UTC,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中的最大和最小日期)
周二,4月20日04:00:00 -271821 GMT;时间戳:-8639999985600000
9月12日星期五275760 04:00:00 GMT;时间戳:8639999928000000 */
我不想听起来居高临下的'如果你很快',但我确实需要指出,这确实是一个日期。 – TMB 2013-03-10 02:43:29
请参阅http://stackoverflow.com/questions/307179/what-is-javascripts-max-int-whats-the-highest-integer-value-a-number-can-go-t。 – bfavaretto 2013-03-10 02:44:50
http://www.thefreedictionary.com/behove – TMB 2013-03-10 02:57:53