A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白面馅包子 中级黑马   /  2015-7-7 22:21  /  1189 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

新人   视频班第二天
既然 整数默认为int型 小数默认为double型  
定义 float a = 5.0F;需要F   
short a = 5;为什么后面不需要一个S

17 个回复

倒序浏览
5是一个确定的值 ,在赋给a时系统会自动识别有没有超出short的表示范围,如果没有的话直接赋值,如果超出的话就会报错
回复 使用道具 举报
可加可不加吧。
回复 使用道具 举报
额这个还真不知道 学习了
回复 使用道具 举报
因为short是整数啊!
回复 使用道具 举报
如果实在不理解可以理解为,Java就是这么规定的,没必要都搞的太深入。
原因嘛,浮点型没有这个自动检测是否在取值范围的功能,所以,需要自己加一下,以示区分;
而整型可以自己先检测一下,是否在取值范围内,在的话编译是没有问题的,不再的话会报“可能丢失精度”。
回复 使用道具 举报
palysh 发表于 2015-7-7 22:59
5是一个确定的值 ,在赋给a时系统会自动识别有没有超出short的表示范围,如果没有的话直接赋值,如果超出的 ...

这位仁兄说的很有道理
回复 使用道具 举报
概念有点混淆,多看几次阳哥的宝典。
回复 使用道具 举报
分享快乐
回复 使用道具 举报
不了解,来学习的
回复 使用道具 举报
强制转换吧,双精度浮点的范围最大,如果后边不加F的话,可能是其他的类型,造成精度的缺失。short比int的精度小,系统默认的是整数,比short大。精度不会缺失。(个人认为)
回复 使用道具 举报
int 范围大于 short。float范围小于double。long定义时还要加l
回复 使用道具 举报
没有超出short的表示范围
回复 使用道具 举报
1.小数默认为double类型,float a =5.0F ,如果不加F那么5.0就是double类型了,而我们要表示的是float类型的5.0.所以要加F
2.整数5默认为int类型,我们是把int类型的5赋值给short,这是一个大转小,而5在short可取值的范围内。所以不用加s。
回复 使用道具 举报
张亚昆 发表于 2015-7-8 23:26
1.小数默认为double类型,float a =5.0F ,如果不加F那么5.0就是double类型了,而我们要表示的是float类型 ...

正解,在给long类型赋值时,如果所赋的值大于int类型的最大值时需要加l,否则会报错。因为整数默认为int类型。
回复 使用道具 举报
这个人家这么定义的啊
回复 使用道具 举报
这个问题确实没注意过,路过学习的
回复 使用道具 举报
float 是单精度
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马