java 中long类型转换成为int类型时可能会出错的地方 -尊龙游戏旗舰厅官网
尊龙游戏旗舰厅官网
收集整理的这篇文章主要介绍了
java 中long类型转换成为int类型时可能会出错的地方
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
那计算两个日期之间间隔的天数为例来说明这个问题。
下面是计算日期间隔天数的简单算法(主要出错的地方为红色标注的地方):
public int getday(string startdate, string enddate) {int m_intervalday = 0;simpledateformat m_simpledateformat = new simpledateformat("yyyy-mm-dd");try {// 创建两个date对象date date1 = m_simpledateformat.parse(startdate);date date2 = m_simpledateformat.parse(enddate);long m_intervalday1 = date2.gettime() - date1.gettime();// 计算所得为微秒数m_intervalday = (int) (m_intervalday1 / 1000 / 60 / 60 / 24);// 计算所得的天数} catch (parseexception e) {e.printstacktrace();}return m_intervalday;}当计算出的间隔时间(毫秒为单位)没有超出int类型的长度时计算出的结果是正常的,但是当间隔时间超出int类型的长度时就会出现问题。
具体问题的体现为:获取到的转换结果会是一个负数。
总结
以上是尊龙游戏旗舰厅官网为你收集整理的java 中long类型转换成为int类型时可能会出错的地方的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: php比较函数,判断安全函数