为什么我不能在javascript中把1加到一个大数上?

How come I can't add 1 to a large number in javascript

本文关键字:一个 不能 javascript 中把 为什么      更新时间:2023-09-26
var i = 20040115102010000;
i++;
returns 20040115102010000;

我必须使用大数库吗?

JavaScript处理大数字(BigNum)的标准解决方案是什么?

这个数字已经是浮点格式了,我把小数点左移了三次。另外,请注意,这是一个日期。我是否应该先把这个数字转换成日期格式?我是否会发现在Date()对象中以毫秒为单位增加更容易?

你不能在javascript中使用这么大的Date,除非你创建一个bigDay库来处理你的bignum。

/*从"https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date":

JavaScript日期从1970 UTC时间1月1日午夜开始以毫秒为单位测量。一天有8640万毫秒。JavaScript Date对象的范围是-100,000,000天到100,000,000天(相对于UTC时间1970年1月1日)。*/

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日-271821 04:00:00 GMT;时间戳:-8639999985600000

星期五,9月12日275760 04:00:00 GMT;时间戳:8639999928000000*/

这将使您的数字增加1。例如,如果数字= 12346456783211345;数字=(长整型数字(数字))+长整型数字(1),

使用BigInt后,它将看起来像12346456783211346

JavaScript现在有一个bigint类型