java12

12 阅读3分钟

**
4、数据类型强制转换**

数据类型除了可以由小变大之外也可以由大变小。但问题是会丢失内容

范围小的数据类型可以自动变为范围大的数据类型

数据范围大的数据类型只有强制转换才可以变为数据范围小的数据类型(但是一般不需要应用,99% 情况下提供的数据类型是恰好的)

范例(数据类型强制转换):

public class Test Demo {

public static void main (String args [])  {

任何的整数默认类型都是 int ,但是该数据已经超过了 int 可以保存的数据范围,就需要将此数据明确表示为 long 型常量。

 long num = 2147483648L ;      L 或 l都可以

在强制的时候设置其目标类型,但这种操作有可能会丢失精度

int result = (int)num ;  大的类型变为小的类型必须强制,

数据类型除了可以由小变大之外也可以由大变小。但问题是会丢失内容

范围小的数据类型可以自动变为范围大的数据类型

数据范围大的数据类型只有强制转换才可以变为数据范围小的数据类型(但是一般不需要应用,99%情况下提供的数据类型是恰好的)

````public class Test Demo {`

public static void main (String args [])  {

任何的整数默认类型都是 int ,但是该数据已经超过了 int 可以保存的数据范围,就需要将此数据明确表示为 long 型常量。

 long num = 2147483648L ;      L 或 l都可以

在强制的时候设置其目标类型,但这种操作有可能会丢失精度

int result = (int)num ;  大的类型变为小的类型,必须强制

数据类型除了可以由小变大之外也可以由大变小。但问题是会丢失内容

范围小的数据类型可以自动变为范围大的数据类型

数据范围大的数据类型只有强制转换才可以变为数据范围小的数据类型(但是一般不需要应用,99%情况下提供的数据类型是恰好的)


范例(数据类型强制转换):

之间讲过所有数据类型都有其默认值,但是这个默认值在方法的说明(主方法)中无效

范例(观察一个错误程序):

任何的整数默认类型都是 int ,但是该数据已经超过了 int 可以保存的数据范围,就需要将此数据明确表示为 long 型常量。

`long num = 2147483648L ;      L 或 l都可以`

在强制的时候设置其目标类型,但这种操作有可能会丢失精度

`int result = (int)num ;  大的类型变为小的类型,必须强制`

`System.out.println(result) ;      -2147483648`

`}`

`}`

此时有两种解决方案,一种是在使用前进行赋值,另外一种是在定义变量时进行赋值