浮点型就是小数,Java之中只要是小数,那么对应的数据类型就是double型数据(double是保存范围最广的数据类型)。
范例:定义小数
public class TestDemo{ public static void main(String args[]){ //10.2是小数所以属于double型 double num=10.2; //double型*int型(转化为double,2.0)=double型 System.out.println(num*2); } } |
由于默认的小数类型就是double型,所以使用了float表示需要将double型变为float型,需要采用强制转换。
范例:使用float型
public class TestDemo{ public static void main(String args[]){ float f1=10.2F; float f2=(float)10.2; System.out.println(f1*f2); } } |
但是发现最终的结果有一点问题,变为了“104.03999”(这个后面的9现在还算少的),这个问题如果要追溯起来从JDK1.0的时候就存在这个bug,解决不了,只能够通过后期的处理完成。
实际上最早开发的时候,考虑到内存的问题,往往能用float就不使用double,例如:J2ME开发,由于内存苛刻,所以往往会压缩数据范围,以节约空间。现在硬件硬件成本的降低,所以是否使用double和float区别意义就不大了,那么就直接使用double数据。
而需要注意的时候,所有的数据类型只有double才可以保存小数。
public class TestDemo{ public static void main(String args[]){ int x=9; int y=5; System.out.println(x/y); } } |
此时如果进行了除法计算最终的计算结果变为了1,因为所有的小数位被忽略了。此时要想得出正确的计算结果,则可以将其中的一个整型变为浮点型。
|