JAVA中关于自动转型的问题
答案:6 悬赏:30 手机版
解决时间 2021-03-29 04:04
- 提问者网友:城市野鹿
- 2021-03-28 09:33
JAVA中关于自动转型的问题
最佳答案
- 五星知识达人网友:上分大魔王
- 2021-03-28 09:41
float赋值的时候后面必须加f是(有区分大小写吗):
这个f必须加上,不然程序会认为是double类型,不区分大小写之分。
double赋值不需要加D,double b=12,输入一个int类型的值都没问题,它会自动转换为double类型,无大小写之分。
int
自动转型:是你左边的类型比右边的大,所以能直接放进去。
“如图中a大于b所以就自动转型了)如果是a*b(a大于b)会自动转为浮点型,若(a小于b)那还会自动转为浮点型”,这句话你理解错误了,不是a的值比b的值大,在java里面不是比值大就是什么类型,而是谁的类型大,就是什么类型。
比如说:a*b,一个是int类型,一个是float类型,我上边说了,float类型比int类型大,你觉得你能把一个大的类型值放在小的类型值里面吗?[除非你强制转换],要么a*b就是float类型。
这个f必须加上,不然程序会认为是double类型,不区分大小写之分。
double赋值不需要加D,double b=12,输入一个int类型的值都没问题,它会自动转换为double类型,无大小写之分。
int
自动转型:是你左边的类型比右边的大,所以能直接放进去。
“如图中a大于b所以就自动转型了)如果是a*b(a大于b)会自动转为浮点型,若(a小于b)那还会自动转为浮点型”,这句话你理解错误了,不是a的值比b的值大,在java里面不是比值大就是什么类型,而是谁的类型大,就是什么类型。
比如说:a*b,一个是int类型,一个是float类型,我上边说了,float类型比int类型大,你觉得你能把一个大的类型值放在小的类型值里面吗?[除非你强制转换],要么a*b就是float类型。
全部回答
- 1楼网友:街头电车
- 2021-03-28 14:43
自动转型是都是向上转的,两个不同的类型值相互运算,结果会变大的,就是向数据类型的位数多的转,这样可以装下结果,不如4个字节的int型与8字节的long型数据运算,得到的是8字节的long型,这样的话就不会丢失精度,如取4字节的int的话,就有可能出现截取的操作,从而出现丢失精度,使结果不准确。至于数字后面的f,d,用小写的,float的需要加,double就不是必须的,就是要明确要求的话,就添加。
- 2楼网友:拜訪者
- 2021-03-28 13:19
1、不区分大小写
2、转换是根据数值类型的取值范围。把不同的类型比作箱子的话只能大箱子套小箱子。例如:double a = - 4.4f;这是可以的,反之就不行
3、小类型在数值范围内怎么转换容纳大类型。强转 如:float s = (float)-1.2222d;
2、转换是根据数值类型的取值范围。把不同的类型比作箱子的话只能大箱子套小箱子。例如:double a = - 4.4f;这是可以的,反之就不行
3、小类型在数值范围内怎么转换容纳大类型。强转 如:float s = (float)-1.2222d;
- 3楼网友:佘樂
- 2021-03-28 12:30
后缀没有大小写之分。
但是在运算过程中要时刻注意数据类型,如int类型除于int类型数据,得到的是int类型(如3/2其实得到是1.5是float型,而不是1,如果不进行转型,将会只得到1),所以要将被除数转换成为float型或者double型才行。所以在进行加减乘数运算时要时刻注意数据类型的转换。
但是在运算过程中要时刻注意数据类型,如int类型除于int类型数据,得到的是int类型(如3/2其实得到是1.5是float型,而不是1,如果不进行转型,将会只得到1),所以要将被除数转换成为float型或者double型才行。所以在进行加减乘数运算时要时刻注意数据类型的转换。
- 4楼网友:人類模型
- 2021-03-28 11:37
byte char int 低精度往高精度转换是不会报错的
就好比小盒子往大盒子里放东西,即使填不满,就空着
但是大盒子是无法放进小盒子里的
就好比小盒子往大盒子里放东西,即使填不满,就空着
但是大盒子是无法放进小盒子里的
- 5楼网友:枭雄戏美人
- 2021-03-28 11:07
您好,提问者:
double类型后面必须加d,不区分大小写,一般情况下都是小写的。
这个自动转型是低类型向高类型转。。public class ZiDongZhuanHuan {
public static void main(String[] args) {
short s=3;
int i=s;
float f=1.0f;
double d1=f;
long l=234L;
double d2=l;
System.out.println("short 自动类型转换为int后的值等于"+i);
System.out.println("float 自动类型转换为double后的值等于"+d1);
System.out.println("long 自动类型转换为double后的值等于"+d2);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯