黑马程序员技术交流社区

标题: 关于 float 后加F的问题 [打印本页]

作者: 白面馅包子    时间: 2015-7-7 22:21
标题: 关于 float 后加F的问题
新人   视频班第二天
既然 整数默认为int型 小数默认为double型  
定义 float a = 5.0F;需要F   
short a = 5;为什么后面不需要一个S
作者: palysh    时间: 2015-7-7 22:59
5是一个确定的值 ,在赋给a时系统会自动识别有没有超出short的表示范围,如果没有的话直接赋值,如果超出的话就会报错
作者: 心在左边跳    时间: 2015-7-7 23:13
可加可不加吧。
作者: 鲤鱼仙    时间: 2015-7-7 23:25
额这个还真不知道 学习了
作者: 河豚    时间: 2015-7-7 23:27
因为short是整数啊!
作者: 々白点潜心ザ    时间: 2015-7-8 00:30
如果实在不理解可以理解为,Java就是这么规定的,没必要都搞的太深入。
原因嘛,浮点型没有这个自动检测是否在取值范围的功能,所以,需要自己加一下,以示区分;
而整型可以自己先检测一下,是否在取值范围内,在的话编译是没有问题的,不再的话会报“可能丢失精度”。
作者: 野驴少东    时间: 2015-7-8 11:55
palysh 发表于 2015-7-7 22:59
5是一个确定的值 ,在赋给a时系统会自动识别有没有超出short的表示范围,如果没有的话直接赋值,如果超出的 ...

这位仁兄说的很有道理
作者: yongaidongbing    时间: 2015-7-8 12:30
概念有点混淆,多看几次阳哥的宝典。
作者: dajiaoya    时间: 2015-7-8 12:44
分享快乐
作者: 梦想起航    时间: 2015-7-8 18:07
不了解,来学习的
作者: 何鹏程    时间: 2015-7-8 18:21
强制转换吧,双精度浮点的范围最大,如果后边不加F的话,可能是其他的类型,造成精度的缺失。short比int的精度小,系统默认的是整数,比short大。精度不会缺失。(个人认为)
作者: CLTDEZHUCE    时间: 2015-7-8 22:22
int 范围大于 short。float范围小于double。long定义时还要加l
作者: 逆袭白富美    时间: 2015-7-8 22:40
没有超出short的表示范围
作者: 张亚昆    时间: 2015-7-8 23:26
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-9 16:14
张亚昆 发表于 2015-7-8 23:26
1.小数默认为double类型,float a =5.0F ,如果不加F那么5.0就是double类型了,而我们要表示的是float类型 ...

正解,在给long类型赋值时,如果所赋的值大于int类型的最大值时需要加l,否则会报错。因为整数默认为int类型。
作者: Miss.H    时间: 2015-7-9 18:29
这个人家这么定义的啊
作者: rose_xiaomei    时间: 2015-7-9 19:44
这个问题确实没注意过,路过学习的
作者: maizi1912    时间: 2015-7-9 21:21
float 是单精度




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2