网站首页 > java教程 正文
原文
在上一小节中我们看到,在必要的时候,int类型的值将会自动转换为double 类型。但另一方面,有时也需要将double类型转换成int 类型。在Java中,允许进行这种数值转换,不过当然可能会丢失一些信息。这种可能损失信息的转换要通过强制类型转换(cast)来完成。强制类型转换的语法格式实在圆括号中指定想要转换的目标类型,后面紧跟待转换的变量名。例如:
double x = 9.997;
int nx = (int)x;
这样,变量nx 的值为9,因为强制类型转换通过截断小数部分将浮点值转换为整型。
如果想舍入(round)一个浮点数来得到最接近的整数(大多数情况下,这种操作更有用),可以使用Math.round
double x = 9.997;
int nx = (int) Math.round(x);
现在,变量nx 的值为10。调用round时,仍然需要使用强制类型转换(int) 。原因是round 方法的返回值是long 类型,由于存在信息丢失的可能性,所以只有使用显式的强制类型转换才能将一个 long 值赋给 int 类型的变量。
警告:如果试图将一个数从一种类型强制转换为另一种类型,而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值。例如,(byte)300实际上会得到44。
C++注释:不要在boolean 类型与任何数值类型之间进行强制类型转换,这样可以防止发生一些常见的错误。只有极少数的情况下需要将一个boolean 值转换为一个数,此时可以使用条件表达式 b?1:0 。
- 上一篇: JAVA的类型转换(基本类型)
- 下一篇: 强制类型转换的注意事项有哪些?
猜你喜欢
- 2024-11-21 Java整数和浮点数类型转换
- 2024-11-21 JavaSE基础之多态的应用场景
- 2024-11-21 第二章:Java数据类型和运算符
- 2024-11-21 int强转为byte类型么?会产生什么问题?
- 2024-11-21 Java接口&异常处理&类型转换
- 2024-11-21 详解 Java 17 中的模式匹配(Pattern Matching)
- 2024-11-21 Java基本数据类型之间的转换规则
- 2024-11-21 关于Java String 类型转换时null的问题
- 2024-11-21 [JAVA冷知识]什么是逆变与协变?数组是否支持协变&逆变?泛型呢?
- 2024-11-21 看完后让你成为武松,手把手教你打死Java中的纸老虎
你 发表评论:
欢迎- 最近发表
-
- Java内存溢出紧急处理:10个必知的Linux命令快速定位OOM
- 面试常问的 25+ 个 Linux 命令(linux面试命令大全)
- Java堆外内存溢出紧急处理实战:Linux命令定位与Spring Boot解决
- java开发常用的Linux命令,高频的没你想象的多
- Java 应用 CPU 飙升?8 个 Linux 命令组合拳快速锁定异常线程
- Java 开发者线上问题排查常用的 15 个 Linux 命令
- Java程序员必备的Linux命令:让你的工作效率翻倍
- Java程序员必备的Linux命令全解析
- [超全整理] Java 程序员必备的 100 条 Linux 命令大全
- SAP ABAP资源导航(sap aatp)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)