9.Java数据类型转换(自动转换和强制转换)

数据类型的转换,分为自动转换和强制转换。自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转换顺序不受限制。

自动数据类型转换

自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:
    低--------------------------------------------->高
    byte,short,char-> int -> long -> float -> double

运算中,不同类型的数据先转化为同一类型,然后进行运算,转换规则如下:

操作数1类型 操作数2类型 转换后的类型
byte、short、char int int
byte、short、char、int long long
byte、short、char、int、long float float
byte、short、char、int、long、float double double

强制数据类型转换

强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确,下面的例子可以说明这个问题。

  1. public class Demo {
  2. public static void main(String[] args){
  3. int x;
  4. double y;
  5. x = (int)34.56 + (int)11.2; // 丢失精度
  6. y = (double)x + (double)10 + 1; // 提高精度
  7. System.out.println("x=" + x);
  8. System.out.println("y=" + y);
  9. }
  10. }

运行结果:
x=45
y=56.0

仔细分析上面程序段:由于在 34.56 前有一个 int 的强制类型转化,所以 34.56 就变成了 34。同样 11.2 就变成了 11
了,所以 x 的结果就是 45。在 x 前有一个 double 类型的强制转换,所以 x 的值变为 45.0,而 10 的前面也被强制成
double 类型,所以也变成 10.0,所以最后 y 的值变为 56。

时间: 2024-10-25 21:20:24

9.Java数据类型转换(自动转换和强制转换)的相关文章

Java数据类型转换(自动转换和强制转换)

数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中"悄然"进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转换顺序不受限制. 自动数据类型转换 自动转换按从低到高的顺序转换.不同类型数据间的优先关系如下: 低--------------------------------------------->高 byte,short,char-> int -> long -> float ->

第二十一篇 Java 数据类型的定义 ,以及基础类型的自动转换和强制转换

大家好,今天呢我吧我所学到的一些知识点共享给大家,希望大家看完之后,要是有什么不懂的,请随时联系我,要是觉得我写的不是很好的 ,还希望你们能够谅解一下,因为小弟我刚学会写博客也没多久,很多格式和方法都不是很完善,希望大家多多包涵,好了 废话就不多说了,来谈一下今天我所学到的一些知识点吧: 今天我主要是学到了一些Java中的数据类型,其中,Java中的数据类型分为俩类------基础数据类和逻辑数据类,下面我所介绍的都是基本数据类的一些分类,至于逻辑类,由于使用次数过少,所以今天就不再这里多做介绍

Java基础——隐式转换vs强制转换

在定义变量时,有许多要注意的问题,一不小心就会出现损失精度或者不兼容类型等问题. 例如: 1.定义长整型数据时,必须加后缀l或L long l =123456789012345L 2.定义单精度类型时(7-8位有效数字),必须加后缀 f 或 F float f = 12.5F 3. boolean类型不可以转换为其它的数据类型. 这其中,我们常常会遇到数据类型的转换问题,最为常见的要属隐式转换和强制转换了,我们来分析一下. 隐式转换 特征: 从小到大,可以隐式转换,数据类型将自动提升. byte

Java数据类型转换

Java数据类型转换 1.题目    以下代码输出的结果是: /** * @Title:NumEqual.java * @Package:com.you.user.util * @Description:数据类型转换 * @author:Youhaidong(游海东) * @date:2014-7-23 下午9:38:56 * @version V1.0 */ package com.you.user.util; /** * 类功能说明 * 类修改者 修改日期 * 修改说明 * <p>Titl

Java数据类型转换1

1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异. 2 如何将整数 int 转换成字串 String ? A. 有叁种方法: 1.) St

Java 数据类型转换

int iValue = new Integer(strValue).intValue();String str = intObj.toString();int number = Integer.parseInt(str); public static Object read(String value, Class type) {        Object ret = value;        if (Integer.TYPE.equals(type)) {            ret =

自动转换和强制转换

package review20140420;/* * 自动转换和强制转换 */public class Test1 {    //程序的入口    public static void main(String[] args) {        //定义变量a,b        int a=256;        byte b=15;        //自动转换        int a1=(int)b;        //强制转换        byte b1=(byte)a;        

java类型转换详解(自动转换和强制转换)

自动转换 class Hello { public static void main(String[] args) { //自动转换 int a = 5; byte b = 6; int c = a + b; System.out.println(c); } } a是int类型,b是byte类型 当二者进行加法运算时(根据同类型相加结果还是同类型) 由于int的范围比byte的取值范围大这个时候jvm会自动将b转换成int类型 强制转换 //强制转换 int a = (int)8.8; 强制转换

Java数据类型的转换:隐式(自动)转换与强制转换

原文链接:http://java.chinaitlab.com/base/725590.html 简单数据类型之间的转换 简单数据类型由低到高(byte.short.char)< int < long < float< double 简单数据类型转换分为:低级到高级的自动转换:高级到低级的强制转换:包装类过渡类型能够转换: 自动类型转换:直接将低级类型只赋值给高级类型:如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值, 强制类型转换:高级类型赋值给低级