Long型整数,缄默溢出

/**

  • 长整数问题
  • @author husky

/
public class LongDemo {
public static void main(String[] args) {
/
*
* 问题3:长整数
/
//计算一天的微妙数
Long microsBefore = (long) (24
606010001000);
//计算一天的毫秒数
Long millisBefore = (long) (24
60601000);
//我们想要的结果是1000
//结果为5
System.out.println("before: " + microsBefore/millisBefore);

	/**
	 * 解析:
	 * 	计算毫秒数时因为在int的表示范围内,可以正确的表示。
	 * 	但是,计算微秒数的时候采用的int进行的计算,然后才转型,对于超过int表示范围的结果,产生缄默溢出
	 *  java支持自动的向上转型,但在享受这种便利的时候一定要注意缄默溢出的情况。
	 */
	System.out.println("microsBefore: " + microsBefore);
	System.out.println("millisBefore: " + millisBefore);
	
	/**
	 * 解决:
	 * 	在使用长整数的时候,进行类型上面的转型的情况的时候在第一个操作数后面显示的标明为long型
	 * 	eg: Long microsBefore = (long) (24L*60*60*1000*1000);	
	 * 	即使可能表示的结果是正确的情况下,显示的标明也是一种好的习惯
	 */
	//计算一天的微妙数
	Long microsAfter = (long) (24L*60*60*1000*1000);		
	//计算一天的毫秒数
	Long millisAfter = (long) (24L*60*60*1000);
	//我们想要的结果是1000
	//结果为5
	System.out.println("after: " + microsAfter/millisAfter);
	System.out.println("microsAfter: " + microsAfter);
	System.out.println("millisAfter: " + millisAfter);
}

}

posted @   时光舟  阅读(317)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示