가능한 중복 :
Retain precision with Doubles in java
Floating point inaccuracy examples(배정 밀도/개체 고유성)
나에 관한 좋은 이유가 있다고 알고 객체와 두 배가 Java에 저장되는 방식으로이 if 문을 거짓으로 만듭니다. 내 이해는 어떤 이유로 든, .03 대신 0.29999999입니다. 어떤 사람이 왜이 조건문이 거짓을 반환하는지 더 자세히 설명해 줄 수 있습니까? 자바 (나뿐만 아니라 다른 프로그래밍 언어를 생각한다) 정확한 정밀 float
및 double
를 나타내지 않는
public class hello {
public static void main(String[] args) {
double a = 0.1;
double b = 0.1;
double c = 0.3;
if(a+b+a == c)
System.out.println("if is true");
}
}
http://docs.oracle.com/cd/E19957-01 /806-3568/ncg_goldberg.html – Mysticial