Re: Comparing floating point values in Java
- From: Arne Vajhøj <arne@xxxxxxxxxx>
- Date: Sat, 30 Dec 2006 14:29:54 -0500
Philipp wrote:
I'm aware of problems (rounding, NaN etc) when comparing floating point values in computers.
In C++ this goes a bit further as you cannot compare with certitude floating point numbers even if you have made exactly the same operations on each of them (see eg: http://www.parashift.com/c++-faq-lite/newbie.html#faq-29.18 )
My question: In Java, will unchanged values compare strictly true if equal?
Is it _guaranteed_ that the following code does output "true" on all JVMs?
example code:
public class Test {
public static void main(String[] args) {
float a = 1;
float b = 1;
System.out.println("a == b?: " + (a == b));
}
}
Most C++ implementations use IEEE floating point.
Java uses IEEE floating point.
You should expect the same floating point issues in
Java as in C++.
Your example is not equivalent to the example in your link.
I believe that the above should always write true in Java.
But in general you should not use == to compare floating
points in Java either.
Your example are just more simple than real life code.
Arne
.
- Follow-Ups:
- Re: Comparing floating point values in Java
- From: Philipp
- Re: Comparing floating point values in Java
- References:
- Comparing floating point values in Java
- From: Philipp
- Comparing floating point values in Java
- Prev by Date: Re: newbie: which IDE to choose?
- Next by Date: Re: Speed of interfaces vs inheritance
- Previous by thread: Re: Comparing floating point values in Java
- Next by thread: Re: Comparing floating point values in Java
- Index(es):
Relevant Pages
|
|