课时11:Java数据类型划分(浮点类型)
摘要:
1. 范例:定义小数
2.范例:定义 Float 变量
3.范例:观察如下计算结果
如果要想描述小数的数据,默认的数据类型使用的是 Double 。
01.范例:定义小数
输入 Double num=10.2
,这是一个小数。所有的小数类型默认是 Double 。再输入System.out.println(num * 2)
,num是 Double 类型, Double 类型*int型常量= Double 类型。范围小的类型需要变为范围大的类型。如果是num*2.0
,由int变为 Double 型。输入System.out.println(( Double ) 2)
;
进行编译再执行,输入Javac TestDemo.Java
,输入Java TestDemo
,结果如图。
同时最需要注意的是, Double 可以保存的数字是最大的,也就是说 Double 可以保存全宇宙中最大的有意义数字。(在一些复杂计算过程中使用 Double 都可以解决。)
除了 Double 之外也可以使用 Float 来描述小数,但是需要记住 Float 范围要小于 Double ,所以如果要想直接声明 Float 变量,就要求在定义时进行强制转换,在数字后加一个字母“F”、“f”。
02.范例:定义 Float 变量
如果输入 Float f1 = 1.1,结果会报错,显示不兼容类型,默认常量为 Double 。
Double 变为 Float 是由高的常量类型转换为低的常量类型,就会产生丢失精度,所以添加F或 Float ,输入 Float f1 = 1.1F
。再输入System.out.println(f1 * 2)
, Float 变量*int常量 = Float 类型
。
进行执行编译,结果为2.2。
再输入System.out.println(1.1 * 1.1)
。
再进行编译执行。
结果有bug,这是一个传统bug。理论上后续的数据不需出现,所以需要进行四舍五入。
小数问题就必须考虑整型的计算问题。
03.范例:观察如下计算结果
int numA = 10; int numB= 4 ; System.out.println(numA / numB)
Int型÷int型=int型
。进行编译执行,结果精度产生问题,应该是2.5。
如果要想准确的进行计算,必须保证有一个类型至少是 Double 型或 Float 型。
修改代码添加 Double 或 Float 。
进行编译执行。
以后进行除法计算时一定要注意好类型。上述如果输入的数是10和3,编译执行的结果也有极限。
Java不是直接与底层的硬件进行交互,是封装好一部分,一些数据会进行回避。以上就是浮点型,使用浮点型就使用 Double 。