short类型与int类型转换,float类型与double类型转换
来源:互联网 发布:海德格尔 知乎 编辑:程序博客网 时间:2024/05/20 04:29
1.问题背景
在问题类型转换中,short a = 1;把int类型转为short类型推翻了转换类型中的,大转小的理论,其实不然。与float f = 3.4 中double float转为float 大转小报错,展开深入研究。
2.基本1.Java类型转换
Java类型转换分为自动转换和强制转换两种。
基本类型间的自动类型转换需要满足以下条件:
(1).转换双方的类型必须兼容,例如int和long类型就是兼容的,而int和boolean就是不兼容的。
(2).只能是"窄类型"向"宽类型"转换,也就是目标类型的数据表示范围要比源类型的数据表示范围要大。
byte-->short-->int-->long
float-->double
按照箭头可以实现自动类型转换,而如果是相反方向间的类型转换则需要强制类型转换.
2.数值常量默认类型
(1).Java中整型常量数值的默认类型是int类型,如果需要声明long类型的常量 ,需要在数值加上'l'或者'L'.
例如:int i = 3;
long l = 3L;
(2).Java中的浮点型常量数值默认是double类型,如果要声明一个数值为float型,则需要在数值后面加上'f'或者'F'.
Float = 3.4是错误的 ,高级向低级转换用强转
Java类型转换分为自动转换和强制转换两种。
基本类型间的自动类型转换需要满足以下条件:
(1).转换双方的类型必须兼容,例如int和long类型就是兼容的,而int和boolean就是不兼容的。
(2).只能是"窄类型"向"宽类型"转换,也就是目标类型的数据表示范围要比源类型的数据表示范围要大。
byte-->short-->int-->long
float-->double
按照箭头可以实现自动类型转换,而如果是相反方向间的类型转换则需要强制类型转换.
数值常量默认类型
(1).Java中整型常量数值的默认类型是int类型,如果需要声明long类型的常量 ,需要在数值加上'l'或者'L'.
例如:int i = 3;
long l = 3L;
(2).Java中的浮点型常量数值默认是double类型,如果要声明一个数值为float型,则需要在数值后面加上'f'或者'F'.
Float = 3.4是错误的 ,高级向低级转换用强转
3.深入讨论short(byte) number = 1;中int类型能直接赋值为byte,short类型
现在才知道,原来是jvm实现的强转类型呀,好吧,这样就符合了 大到小 要用“强转”,jvm自己就进行转换了。
4.float与double float类型为啥就不可以转换呢
这就考虑到精度损失的问题,既然是精度损失,那么就要深入了解float二进制存储结构了
一个float4字节32位,分为三部分:符号位,指数位,尾数位。
(1)符号位 31位,为1或者0
(2)指数为23-30,8位表示
(3)尾数位也就是小数位,则为0-22
一个double float 8字节,64位,分为三部分:符号位,指数为,尾数位
(1)符号位63位,为1或者0
(2)指数为52-62位,11位表示
(3)尾数位小数位,0-51位表示
综上可知,在表示二进制小数点时候,会损失精度,造成转换报错。
- short类型与int类型转换,float类型与double类型转换
- String与int float double 类型之间的转换
- double与int类型自动转换
- CString 与int char* float 类型转换
- C++ string类型与int,float类型转换
- C++中将string类型转换为int, float, double类型
- C++中将string类型转换为int, float, double类型
- C++中将string类型转换为int, float, double类型
- C++中将string类型转换为int, float, double类型
- string类型转换为int, float, double类型、随机数生成
- 类型转换 float与int ,(int&)a,(int)&a
- int short型类型转换
- byte数组转换成double,int ,short类型
- C/C++ 中 int/long/float/double数值类型 与 字符串 互相转换
- C/C++ 中 int/long/float/double数值类型 与 字符串 互相转换
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- squid和bond
- audio h5新增音频播放器
- ideal创建maven项目
- 同一目录下的Python A文件调用Python Bwenjai
- Git客户端下载及安装
- short类型与int类型转换,float类型与double类型转换
- 模拟浏览器http请求,获得网页重定向后的信息
- Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
- Mac系统远程桌面--Windows电脑远程控制Mac系统
- QT日志输出
- GC浅谈
- SQLSERVER换行,回车
- ORACLE中Like与Instr模糊查询性能大比拼
- vs如何访问iis,调试本地代码