小竹. 2022-03-28 17:07 采纳率: 0%
浏览 36

java,为什么不合法,为什么不合法还能正常输出

img


java类型转换
为什么不合法
不合法为什么能正常输入
希望可以得到一个好的解释
谢谢了!

  • 写回答

3条回答 默认 最新

  • 关注

    不合法是说明有数据丢失的风险,比如从double转成int,把一个数据范围较大的数赋值给一个数据范围较小的数,高位会丢失。编译器在处理类型转换的时候,虽然有些转换存在风险,但编译器并没有把它判定为错误,所以是可以输出的。
    比如double d=1000.34; 整数部分1000在int类型范围内,所以int k=(int)d;是可以正确得到整数部分的。

    i/j/k/p的值说明如下:

        char c='A';
        int i = (int)c; //'A'的ASCII码是65,所以i的值就是65
        float f = 1000.34f; 
        int j=(int)f; //取1000.34的整数部分,所以j的值是1000
        double d = 1000.34;
        int k =(int)d;//取1000.34的整数部分,所以k的值是1000
        int m=97;
        char p = (char)m; //97是字符'a'的ASCII码,所以p就是字符'a'
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月28日

悬赏问题

  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥30 数字信号处理实验报告
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥15 ensp路由器启动不了一直报#
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要
  • ¥15 已知许多点位,想通过高斯分布来随机选择固定数量的点位怎么改