黑马程序员技术交流社区
标题:
数据类型 隐式转换的问题
[打印本页]
作者:
㏒假™面具
时间:
2015-2-28 20:11
标题:
数据类型 隐式转换的问题
本帖最后由 ㏒假™面具 于 2015-3-6 02:58 编辑
默认转换
A:byte,short,char - int - (long - float)? - double
B:byte,shotr, char相互之间不转换,他们参与运算首先转换成int型。
问题:long在内存中用8个字节存储,float用4个字节存储,默认转换是long-float,
不会损失精度吗?
作者:
fantacyleo
时间:
2015-2-28 20:19
“long在内存中用8个字节存储,float用4个字节存储,默认转换是long-float,会损失精度”
这个结论要成立,前提是long和float在计算机内存中表示的方式一致,但实际上这个前提不成立。整数和浮点数的表示方式差异很大。结果就是,虽然float只占4个字节,却能比占8字节的long表示更大范围的数,具体取值可通过打印Float.MAX_VALUE Long.MAX_VALUE这两个变量来查看
作者:
alvis2015
时间:
2015-3-1 10:34
long 和 float之间的默认转换不是靠直接截取位数实现的。因为他们两个存储数值的方式不一样,不能直接靠截取位数实现转换。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2