浮点数分为float(单精度浮点数)和double(双精度浮点数。
float取值范围是4字节32位,精度是7到8位。
double取值范围是8字节64位,精度是16到17位。
数据转化时会有精度的损失,所以通过BigDecimal类将浮点数转化为String类型,然后再进行运算。
import java.math.BigDecimal;
public class Test{
public static void main(String[] args) {
double a=1.2;
double b=1.3;
System.out.println(sub(a,b));
System.out.println(add(a,b));
}
public static double sub(double a,double b) {
BigDecimal a1= new BigDecimal(Double.toString(a));
BigDecimal a2= new BigDecimal(Double.toString(b));
double c=a1.subtract(a2).doubleValue();
return c;
}
public static double add(double a,double b) {
BigDecimal a1= new BigDecimal(Double.toString(a));
BigDecimal a2= new BigDecimal(Double.toString(b));
double c=a1.add(a2).doubleValue();
return c;
}
}