黑马程序员技术交流社区
标题:
数据类型转换
[打印本页]
作者:
403383221
时间:
2013-4-17 09:21
标题:
数据类型转换
本帖最后由 403383221 于 2013-4-17 10:13 编辑
int a = 4000;
double b = (double)a/1000/100;
我想问的是,a是先转换成double型再运算呢,还是运算后再转换的?
而且,我如果这样写的话
int a = 4000;
double b = (float)a/1000/100;
System.out.println(b);
为啥结果是
0.03999999910593033
作者:
陈宇鹏
时间:
2013-4-17 10:02
首先,第一个,
肯定是先转换,因为“()”的原因,“()”优先级大于+、-、*、/。记着,以后写程序,不知道优先级怎么写优先级的时候,就直接用()就可以了,()是最优的
第二个
double 的有效位是14位
并且精度高于float
首先,float进行a的转换后,计算出来是0.04
这个时候,要将值赋值给b float的类型就需要提升,但是在提升的过程中,就会损失精度。
作者:
403383221
时间:
2013-4-17 10:03
陈宇鹏 发表于 2013-4-17 10:02
首先,第一个,
肯定是先转换,因为“()”的原因,“()”优先级大于+、-、*、/。记着,以后写程序,不 ...
明白了,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2