我试图通过乘以毫秒来计算30天,但是结果持续出现,结果是days_30的值是负数,我不确定为什么。
任何建议,不胜感激!
代码片段:
// check to ensure proper time has elapsed
SharedPreferences pref = getApplicationContext()
.getSharedPreferences("DataCountService", 0);
long days_30 = 1000 * 60 * 60 * 24 * 30;
long oldTime = pref.getLong("smstimestamp", 0);
long newTime = System.currentTimeMillis();
if(newTime - oldTime >= days_30){
days_30值导致:-1702967296
聚苯乙烯
double days_30 = 1000 * 60 * 60 * 24 * 30;
double oldTime = pref.getLong("smstimestamp", 0);
double newTime = System.currentTimeMillis();
if(newTime - oldTime >= days_30){
结果较小(但仍为负数)。-1.702967296E9
您正在相乘ints
,并且发生溢出,因为最大整数为2^31-1
。只有在乘法之后,它才会转换为long
。将第一个数字转换为long
。
long days_30 = (long) 1000 * 60 * 60 * 24 * 30;
或使用long
文字:
long days_30 = 1000L * 60 * 60 * 24 * 30;
long
从一开始,这将迫使数学运算。
问题内容: 为什么用Java将24 * 60 * 60 * 1000 * 1000除以24 * 60 * 60 * 1000不等于1000? 问题答案: 因为乘法会溢出32位整数。64位还可以: 显然,在乘法溢出之后,除法不会“撤消”该溢出。
问题内容: 我想生成日期列表,但发现日期从-25 * 24 * 60 * 60 * 1000开始是错误的 我的本地日期是2016-07-17。我有 我不知道从哪里来。我按照下面的(和)将25分解为24和-1 ,然后得到正确的日期。 为什么起作用但不起作用? 这是我的代码:从i = 25起日期是错误的 问题答案: 您超出了的范围。产生一个(其然后从减去从)。 可以是24,因为结果是2,073,600
问题内容: 我正在尝试计算(360/24)/ 60当我应该得到0.25时,我一直得到答案0.0 换句话说:我想将360除以24,然后将结果除以60 打印输出: 这是为什么?我是在做一些真正愚蠢的事情,还是有充分的理由呢? 问题答案: 算术中的所有操作数都不是浮点数-因此所有操作均使用整数算术完成,然后转换为浮点数。如果将适当的操作数的类型更改为浮点数,则可以正常工作: 请注意,如果仅将60更改为浮
资本家总是把未来描述得相当美好。这一次,周总显然也错误地估计了形势。北京啊,毕竟是首都,大城市,他和陈董老想着把公司做大,从这里做到大城市,做到北京上海,再开分公司,再上市,上了市再开分公司…… 他这么想,于是也想当然地认为绝影会很乐意去北京,所以在跟他说这事的时候,他用了一种似乎是施舍的语气。 绝影当然不吃他这一套,过去两年中,他出差也去了不少地方,每次一回家就跟别人感叹:“还是四川好啊……”
我基本上是在尝试捕捉sql命令及其对CPU的等待时间,我只想运行一个60秒的while循环,并将所有数据插入到一个临时表中。我不是很好当游标,或者如何在SQL中完成这一个。
我有l5.2,我按照以下步骤钩住spikpost和laravel,并将我的服务和恢复到其原始配置: 但是我得到了这个错误: cURL错误60:SSL证书问题:无法获取本地颁发者证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)