## digitalmars.D.learn - The best way to compare floating point values.

"Jack Applegame" <japplegame gmail.com> writes:
```I wrote this function for comparing two floating point values:

import std.math;
import std.traits;

bool isEqual(T)(T v1, T v2) if(isFloatingPoint!T) {
return T.mant_dig - feqrel(v1, v2) < 2;
}

What do you think about it?
```
Feb 14 2015
"Gary Willoughby" <dev nomad.so> writes:
```On Saturday, 14 February 2015 at 09:37:05 UTC, Jack Applegame
wrote:
I wrote this function for comparing two floating point values:

import std.math;
import std.traits;

bool isEqual(T)(T v1, T v2) if(isFloatingPoint!T) {
return T.mant_dig - feqrel(v1, v2) < 2;
}

What do you think about it?

I wrote a similar function here:

or using an epsilon value:

I don't know if they are useful to you?
```
Feb 14 2015
"Jack Applegame" <japplegame gmail.com> writes:
```On Saturday, 14 February 2015 at 10:23:48 UTC, Gary Willoughby
wrote:
I wrote a similar function here:

or using an epsilon value:

I don't know if they are useful to you?

Very interesting. Thanks.
```
Feb 14 2015
"Ivan Kazmenko" <gassa mail.ru> writes:
```There is an approxEqual in std.math, in addition in feqrel:

http://dlang.org/phobos/std_math.html#.approxEqual

It takes maximum absolute and relative difference as arguments.
```
Feb 14 2015