java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > double和float的区别与使用

Java中double和float类型的区别与使用方法

作者:大刀爱敲代码

float和double都是用来表示浮点数的数据类型,但是它们之间有一些区别,这篇文章主要给大家介绍了关于Java中double和float类型的区别与使用方法的相关资料,需要的朋友可以参考下

double和float类型的区别与使用

在Java中,double和float都是基本数据类型,用于表示浮点数(即带有小数点的数)。

它们在精度和范围上有所不同:

double类型提供了更高的精度和更大的范围,而float类型则精度更低,范围更少;

声明这些类型的变量时,你需要遵循特定的语法规则。

double 类型

double md = 3.14; // 3.14就是double类型的数据  
double ad = 3.0; // 注意:即使没有小数部分,这也是一个double类型的浮点数
double c = 3;// 自动类型转换(int-》double)
double d = 10.0d;
double e = 10D;

float 类型

float j = 3.14;//这个会报错的,double不可以自动转换为float类型

float m = 3.14f;  
float n = 3.0f; // 必须加上f或F后缀
float a = 3;//这个也可以(自动类型转换)

例题:分别有三个变量,a,b,c,请问一下的定义中哪些有错误:float a=2;float b=2.5;float c=3.0f

Float b = 2.5;存在语法错误,在Java中2.5是double类型的数据,不能自动转换为float类型的数据(可以使用强制类型转换,但是会有精度损失的风险,不建议),所以应该改成float b= 2.5f;

Float a= 2;虽然没有语法错误,但是也存在一定的风险,因为2是一个int类型的数据,它会产生自动类型转换,有int转换为float。所以最好是改成float = 2f;

总结

double和float的精度损失的问题解决

		double a =0.1;
        double b = 0.2;
        System.out.println(a + b);//0.30000000000000004
        System.out.println(a * b);//0.020000000000000004

        BigDecimal c = new BigDecimal("0.1");
        BigDecimal d = new BigDecimal("0.2");
        BigDecimal sum = c.add(d); //求和
        System.out.println(sum);// 结果为 0.3
        BigDecimal ji = c.multiply(d);//乘积
        System.out.println(ji);// 结果为0。02

总结 

到此这篇关于Java中double和float类型的区别与使用方法的文章就介绍到这了,更多相关double和float的区别与使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文