digitalmars.D.learn - The best way to compare floating point values.
- Jack Applegame (2/8) Feb 14 2015 What do you think about it?
- Gary Willoughby (7/15) Feb 14 2015 I wrote a similar function here:
- Jack Applegame (3/8) Feb 14 2015 Very interesting. Thanks.
- Ivan Kazmenko (3/3) Feb 14 2015 There is an approxEqual in std.math, in addition in feqrel:
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
On Saturday, 14 February 2015 at 09:37:05 UTC, Jack Applegame wrote:I wrote this function for comparing two floating point values: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?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
On Saturday, 14 February 2015 at 10:23:48 UTC, Gary Willoughby wrote: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?Very interesting. Thanks.
Feb 14 2015
There is an approxEqual in std.math, in addition in feqrel: It takes maximum absolute and relative difference as arguments.
Feb 14 2015