日志文章

2019-12-12 aflfte2011

浮点数据类型测试

浮点数据类型学习测试
TestPrimitiveDateType2.java

/**
 * 测试浮点型
 * @author jinhao
 *
 */
import java.math.*;
public class TestPrimitiveDateType2 {
public static void main(String[] args) {
float a=3.14F;
double b=6.28;
double c=628E-2;
System.out.println(c);
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);//结果为false说明浮点数的值是不精确的不可用于比较。

float d1=423432423f;
float d2=d1+1;
if(d1==d2) {
System.out.println("d1=d2");
}else {
System.out.println("d1!=d2");
}//输出结果是d1=d2;
System.out.println("##########################");

//要使用精确的浮点运行,推荐使用BigDecimal
BigDecimal bd=BigDecimal.valueOf(1.0);
bd=bd.subtract(BigDecimal.valueOf(0.1));//使用bd减去0.1
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
bd=bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);
System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);

BigDecimal bd2 = BigDecimal.valueOf(0.1);
BigDecimal bd3 = BigDecimal.valueOf(1.0/10.0);
System.out.println(bd2.equals(bd3));
}

}


« 字符类型和布尔类型 | JAVA基本数据类型测试»