欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

浮点数的比较

程序员文章站 2022-03-02 10:33:36
...

Java里浮点数不是精确的,很多数字只能近似。
如:0.1,只能接近,不能等于。

import java.math.BigDecimal;//import java.math.*;

public class Main0324 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        int a=10;
        int b=10;
        System.out.println(a==b);//true
		float f=0.1f;
        double d=1.0/10;
        System.out.println(f==d);//false
        BigDecimal bd2=BigDecimal.valueOf(0.1);
        BigDecimal bd3=BigDecimal.valueOf(1.0/10.0);
        System.out.println(bd2.equals(bd3));//0.5
        
        float d1=423443423f;
        float d2=d1+1;
        if(d1==d2) {
        	System.out.println("d1=d2");//等于
        }
        else {
			System.out.println("d1!=d2");
		}
        System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);//0.5?
        BigDecimal bd=BigDecimal.valueOf(1.0);//将bd 复制为1.0
        bd=bd.subtract(BigDecimal.valueOf(0.1));//bd 减去0.1
        bd=bd.subtract(BigDecimal.valueOf(0.1));//bd 减去0.1
        bd=bd.subtract(BigDecimal.valueOf(0.1));//bd 减去0.1
        bd=bd.subtract(BigDecimal.valueOf(0.1));//bd 减去0.1
        bd=bd.subtract(BigDecimal.valueOf(0.1));//bd 减去0.1
        System.out.println(bd);//0.5
        
	}

}

**运行结果**
true
false
true
d1=d2
0.5000000000000001
0.5
相关标签: 基础知识 java