美文网首页
6.6-数据类型自动转换与强制性转换

6.6-数据类型自动转换与强制性转换

作者: 钟小胖子 | 来源:发表于2018-02-21 00:53 被阅读0次

    当不同的数据类型进行计算的时候,会自动将结果变成最大值的数据类型,转换顺序如下

    byte-short-int-long-float-double

                         I

                    (char)

                     (char实际存储为unicode编码,实际是整数类型-即32位)

    /*

    * Created by 智捷课堂

    * 本书网站:www.51work6.com

    * 智捷课堂在线课堂:www.zhijieketang.com

    * 智捷课堂微信公共号:zhijieketang

    * 邮箱:eorient@sina.com

    * Java读者服务QQ群:547370999

    * 【配套电子书】网址:

    *      图灵社区:

    *      http://www.ituring.com.cn/book/2480

    *      百度阅读:

    *      https://yuedu.baidu.com/ebook/7c1499987e192279168884868762caaedd33ba00

    */

    public class HelloWorld {

    public static void main(String[] args) {

    ////////// 自动类型转换//////////////

    // 声明整数变量

    byte byteNum = 16;

    short shortNum = 16;

    int intNum = 16;

    long longNum = 16L;

    // byte类型转换为int类型

    intNum = byteNum;

    // 声明char变量

    char charNum = '花';

    // char类型转换为int类型

    intNum = charNum;

    // 声明浮点变量

    // long类型转换为float类型

    float floatNum = longNum;

    // float类型转换为double类型

    double doubleNum = floatNum;

    // 表达式计算后类型是double

    double result = floatNum * intNum + doubleNum / shortNum;

    ////////// 强制类型转换//////////////

    //int型变量

    int i = 10;

    //把int变量i强制转换为byte

    byte b = (byte) i;

    int i2 = (int)i;

    int i3 = (int)b;

    //精度与强制类型转换

    float c1 = i / 3;

    System.out.println(c1);

    //把int变量i强制转换为float

    float c2 = (float)i / 3;

    System.out.println(c2);

    //强制类型转换导致精度丢失

        long yourNumber = 6666666666L;

        System.out.println(yourNumber);

        int myNuber = (int)yourNumber;

        System.out.println(myNuber);

    }

    }

    相关文章

      网友评论

          本文标题:6.6-数据类型自动转换与强制性转换

          本文链接:https://www.haomeiwen.com/subject/rvewtftx.html