The best way to compare floating point values.

Gary Willoughby via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Feb 14 02:23:47 PST 2015


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:

https://github.com/nomad-software/dunit/blob/master/source/dunit/toolkit.d#L42

or using an epsilon value:

https://github.com/nomad-software/dunit/blob/master/source/dunit/toolkit.d#L134

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


More information about the Digitalmars-d-learn mailing list