位置:电子教程 > Java基础语法 (如果看不到内容请使用360浏览器) 推荐学习资源
开发准备
Java 程序基础
Java 运算符
Java流程控制语句
当前阅读教程:Java基础语法 > 显式转换(强制类型转换)
阅读(22555525)      收藏       赞(5685)      分享
上一篇: 隐式转换(自动类型转换) 下一篇: Java 运算符

尽管自动类型转换是很有帮助的,但并不能满足所有的编程需要。例如,如果你需要将 double 型的值赋给一个 int 型的变量,你将怎么办?

这种转换不会自动进行,因为 double 型的变化范围比 int 型的要小。这种转换有使成为“缩小转换”,因为你肯定要将源数据类型的值变小才能适合目标数据类型。

所以当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。其语法格式如下:

(type)variableName

其中,type variableName 要转换成的数据类型,而 variableName 是指要进行类型转换的变量名称,强制转换的实例如下:

int a = 3;

double b = 5.0;

a = (int)b;

上述代码中首先将 double 类型变量 b 的值强制转换成 int 类型,然后将值赋给 a,但是变量 b 本身的值是没有发生变化的。

在强制类型转换中,如果是将浮点类型的值转换为整数,直接去掉小数点后边的所有数字;而如果是整数类型强制转换为浮点类型时,将在小数点后面补零。

【示例

小白教程网www.2d5.net

】LeiXing05.java

顾客到超市购物,购买牙刷 2 个,方便面 4 包。其中牙刷的价格是 5.9 元,方便面的价格是 1.9元,求商品总价格,在计算总价时采用 int 类型的数据进行存储。实现代码如下:

public class LeiXing05 {
    public static void main(String[] args) {
        float price1 = 5.9f; // 定义牙刷的价格
       
double price2 = 1.9; // 定义方便面的价格
       
int num1 = 2; // 定义牙刷的数量
       
int num2 = 4; // 定义方便面的数量
       
int  total = (int )(price1 * num1 + price2 * num2); // 计算总价
       
System.out.println("一共付给收银员" + total + "");   // 输出总价
   
}
}

在上述实例中,有 double 类型、float 类型和 int 类型的数据参与运算,其运算结果默认为 double 类型,题目要求的结果为 int 类型,因为 int 类型的取值范围要小于 double 类型的取值范围,所以需要进行强制类型转换。运行结果

一共付给收银员19

 


上一篇: 隐式转换(自动类型转换) 下一篇: Java 运算符
计算机毕业设计作品网      毕业设计文档网      小程序教程网       毕业设计资料网  |         毕业设计定制QQ:45157718(微信同号)(备注:毕设)