zoukankan      html  css  js  c++  java
  • 3.27Java强制类型转换(cast)

    3.27Java强制类型转换(cast)

    举例

    将一个double类型的值转为int类型:

    实例:

    double x = 3.14;
    int nx = (int)x; //值为3
    char c = 'a';
    int d = c+1;
    System.out.println(nx);
    System.out.println(d);
    System.out.println((char)d);
    /*
    强转移可能会出现数据丢失
    */

    在数据类型转换的时候会出现的问题

    操作比较大的数的时候要留意是否溢出

    结果比表述的范围要大就发生了溢出

    不要命名名字为‘l'小写L的变量,'l'容易和1混淆。Long类型的使用也是要用大写L

    实例:

     /**
    * 测试类型转换常见的问题
    * @author Lucifer
    */
    public class TestTypeConvertError {
       public static void main(String[] args) {
           int money = 100000000; //10亿
           int years = 20;
           //返回的total是负数,超过了int的范围
           int total = money*years; //先算出后面的表达式的值,其结果超过了int的范围,再将这个结果赋给total超过了int的范围所以结果是负数
           System.out.println("total=" + total);
           //返回的total仍然是负数,默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
           long total1 = money*years;
           /*
           虽然total1声明了是long类型,但是在计算的时候是以int类型去进行计算的,而且本身在int类型计算的时候值已经溢出
           所以在赋值给long也无用
            */
           System.out.println("total1=" + total1);
           //返回的total2正确,先将一个因子变成long,整个表达式发生提升.全部用long来计算。
           long total2 = money*((long)years);
           System.out.println("total2=" + total2);
           /*
           正确的方法是先让表达式的结果为long
           如total2,先让表达式中的一个操作数为long类型
           这样计算出来的表达式的结果也为long
           先把其中一个变量类型做提升,然后整个表达式的结果容量都会提升
            */


           //命名问题
           int l = 2; //分不清是L还是1
           long a = 23451l;
           System.out.println(l+1); //注意不要用小写L

           long total3 = 34L*2323*a*l; //保险起见在运算时就先让一个操作数变为和变量一个类型
           System.out.println(total3);
      }
    }

     

     

    It's a lonely road!!!
  • 相关阅读:
    微信公众号,图片预览功能 有单个图片,
    MUI
    MUI学习01-顶部导航栏
    php验证18位身份证,准到必须输入正确的身份证号,
    微信sdk 图片上传 两种方法 上传一张显示一张 并附带微信图片放大功能和删除功能
    jQuery实现限制input框 textarea文本框输入字符数量的方法
    js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能
    山东省2016acm省赛
    East Central North America Region 2015
    North America Qualifier (2015)
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14587229.html
Copyright © 2011-2022 走看看