zoukankan      html  css  js  c++  java
  • 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);
    }
    

    }

  • 相关阅读:
    数据库中导入json数据
    EntityFrameWork Core创建数据库并且使用
    AutoMapper自动映射框架的使用(一)
    值类型和引用类型
    Windows10家庭版安装docker
    Manjaro Linux系统安装
    STM32之USMART的简单介绍
    DSP28335笔记
    张飞第二部:直流无刷电机 直流电源 电感 热水循环泵系统
    高输入阻抗 低输出阻抗 的意义
  • 原文地址:https://www.cnblogs.com/husky/p/5792675.html
Copyright © 2011-2022 走看看