Java基础:数值类型转换、强制类型转换
2024-08-31 19:57:21
数值类型之间的转换
数值类型之间的转换,在小数值往大数值转换时,不会发生精度的损失。在小数值往大数值转换时有可能发生精度的损失。
比如byte最大值也只有127,如果一个大于127的int类型数据往byte转换肯定是不行的,但是往long类型转换就完全没问题了。
在我们进行一些两种不同数值类型之间的数值运算时,先要将两个操作数转换为同一种类型,然后再计算。
具体转换为那种类型,得看他们的取值。
可以参考https://www.cnblogs.com/lbhym/p/11122716.html
如下图。实心箭头表示无信息丢失,虚线代表有可能有精度损失。
注:《Java核心技术 卷1》
强制类型转换
除了Java自己会进行类型转换。比如int+double,系统会把结果转换为double。
我们有时候需要手动转换一些类型。
语法如下:
double x=9.997;
int nx=(int) x;
只需要在前面加个小括号,小括号里面写上目标类型就行。
最后nx=9。
如果你需要舍入,可以用Math.round方法
double x=9.997;
int nx=(int)Math.round(x);
nx=10;
这里注意,round方法返回的是long类型数据,所以你还是只需要int类型数据时,需要再强转一下。
最新文章
- linux文件及文件夹权限
- Unity Animation System(动画系统)
- c#跨线程访问控件帮助类
- linux pidof
- mybatis进阶
- javascript中||和&;&;代替if
- Android Studio配置Git及Git文件状态说明
- unity 协同
- C#程序中访问配置文件
- sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset ";DBSCHEMA_TABLES_INFO"; for OLE DB provider ";SQLNCLI10"; for linked server ";XXXXX";. 的解决方法
- UVa 536 Tree Recovery | GOJ 1077 Post-order (习题 6-3)
- python 使用paramiko模块上传本地文件到ssh
- iOS UITableView的多选
- 无用代码清除tip
- Window 下mysql binlog开启及查看,mysqlbinlog
- Windows下利用MKL加速caffe,与openblas比较
- c# ASP.NET Core2.2利用中间件支持跨域请求
- PHP文件系统管理
- PHP微信模板消息发送
- JS-JS创建数组的三种方法
热门文章
- Msfvenom命令总结大全
- [BZOJ3449] [Usaco2014 Feb]Secret Code
- [BZOJ1694/1742/3074]The Cow Run 三倍经验
- php反序列化漏洞复现
- python日记:用pytorch搭建一个简单的神经网络
- selenium-find_element相关内容(2)
- python中使用logging将日志写入文件或输出到控制台
- 算法问题实战策略 QUADTREE
- httprunner-1-linux下搭建hrun(上)
- Spring Boot项目中如何定制拦截器