今天在做题的时候,碰见一道类型转换的题,一时有点懵,故整理一下,方便查看:
- 题目:
以下会产生信息丢失的类型转换是()
A:float a = 10;
B:int a = (int)8846.0;
C:byte a = 10; int b = -a;
D:double d = 100;
链接:https://www.nowcoder.com/questionTerminal/0e34f5c452d543268c6617dabe5ca142
- 答案:B
信息丢失也就是丢失精度,数据从小范围转到大范围的时候会发生精度丢失
刚看到题目的时候,觉得B、C都不对。
B是从double转int,C是int转byte;而float:1字节,int:4字节,double:8字节。
可是这是单选不是多选题啊,最后查了一下资料发现这么一句话:
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一
byte范围是-128~127,故在这个范围内的整数赋给他都不会发生精度丢失