黑马程序员技术交流社区

标题: 一个计算题 [打印本页]

作者: 张建银    时间: 2012-2-7 00:08
标题: 一个计算题
float b=1.2;double c=2.6;
1+'a'++b+c=  谁知道结果是多少
作者: 张建银    时间: 2012-2-7 00:10
1+'a'+b+c=
作者: Joyuang    时间: 2012-2-7 00:16
LZ这里写错了吧float b=1.2;应该写成float b=1.2f;或者强转成float类型。
改正错误之后结果是:101.79999694824218
float类型嘛,都是很精确的
作者: 秦碧    时间: 2012-2-7 00:19
float b=1.2;赋值是非法的
应该是float b=1.2f;
刚用程序跑了一下 结果为101.799999694824218
数据类型之间的有限关系为:byte,short,char-> int -> long -> float -> double(最高)
低优先级的加高优先级的需要都转换成高优先级的

所以最终结果为double型,至于不等于101.8 我想可能是一些转换过程中的精度损失吧。


作者: 黑马唐浩    时间: 2012-2-7 00:28
java中基本数据类型除了boolean型,都可以进行类型转换。
                 表示数范围小的数可以向表示数范围大的进行自动类型转换。
                当把一个表示范围小的数值或变量赋给一个表示范围大的数时,
                系统会进行自动类型转换以计算结果。
                                char
                                         --->int--->long--->float--->double
                byte--->short
作者: 黑马唐浩    时间: 2012-2-7 00:28
我记得这个大一时候讲C语言也是这样啊好像。
作者: 张伟~    时间: 2012-2-7 00:32
1+'a'++b+c  ?
这叫什么运算
多写了个+号吗?
楼主问题也得把问题写清楚啊,还有那个float后面也没写f
像这种代码的话你自己写几行代码不就知道结果了吗
作者: 王文龙    时间: 2012-2-7 00:49
一是float类型数值后要加f,
否则失败;
二是类型转换:
char-->int-->float-->double,
最后终为double类型.

至于精度损失是很麻烦,
同学有兴趣可以baidu一哈.
作者: 毛溯澜    时间: 2012-2-7 09:18
float b=1.2;赋值是非法的
应该是float b=1.2f;
数据类型之间的有限关系为:byte,short,char-> int -> long -> float -> double(最高)低向高转
这个问题自己运行下不就好了!
作者: 孙汇川    时间: 2012-2-7 11:07
数据类型之间的转换关系要知道:byte,short,char-> int -> long -> float -> double(最高的)
float b=1.2后面少了个f;
赋值非法
应该是float b=1.2f;
作者: 王_涛    时间: 2012-2-7 11:32
1+'a'+b+c

1.在进行+运算时'a'字符会转换成ascii码值97进行

2.在进行+运算时,系统会进行自动类型转换以计算结果。
      --->int--->long--->float--->double

作者: 何洪森    时间: 2012-2-7 12:45
首先应该提醒楼主,应该自己先编译一下,感觉与自己想的不一致,然后在把代码复制上去,两个明显的错误就是少个f,多个+号。
主要想说做程序一定要细心,否则小的粗心引起的bug,再回头很难找还会浪费很多时间,不过还是能知道你所问的问题是什么。
基本数据类型之间有一定的优先级顺序,在java中变量的优先级由低到高的排列顺序是:byte -  (short  ,   char)  -    int   -  long  -   float  -   double
自动类型转换:由优先级低的数据类型转向优先级高的数据类型。
所以字符'a'对应的asc码值是97,然后根据自动类型转换最终都会转成double型。我电脑运行的结果是:101.79999694824218
作者: 【专】【属】    时间: 2012-2-7 20:03
个人感觉,这种问题就不要问了,没有意义,如果想知道结果自己运行一下了。




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