www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Floats 1E-7 != 1.0E-7

reply "Paul" <phshaffer gmail.com> writes:
This is my test code:

import std.stdio;
import std.conv;
import std.string;

void main(string args[])
{
writeln(to!float(args[1])==to!float(args[2]));
}

When I enter 1E-7 and 1.0E-7 for arguments I get "false".

Why aren't these equal?  When parsing a text file that reads
these two values I need it to say they are equal.

Thanks.
Oct 04 2012
parent reply "anonymous" <anonymous example.com> writes:
On Thursday, 4 October 2012 at 19:49:35 UTC, Paul wrote:
 This is my test code:

 import std.stdio;
 import std.conv;
 import std.string;

 void main(string args[])
 {
 writeln(to!float(args[1])==to!float(args[2]));
 }

 When I enter 1E-7 and 1.0E-7 for arguments I get "false".

 Why aren't these equal?  When parsing a text file that reads
 these two values I need it to say they are equal.

 Thanks.
Seems to be the same problem as discussed here: http://forum.dlang.org/thread/jsemibukuzkjssdbtkcf forum.dlang.org
Oct 04 2012
parent "Paul" <phshaffer gmail.com> writes:
On Thursday, 4 October 2012 at 20:06:20 UTC, anonymous wrote:
 On Thursday, 4 October 2012 at 19:49:35 UTC, Paul wrote:
 This is my test code:

 import std.stdio;
 import std.conv;
 import std.string;

 void main(string args[])
 {
 writeln(to!float(args[1])==to!float(args[2]));
 }

 When I enter 1E-7 and 1.0E-7 for arguments I get "false".

 Why aren't these equal?  When parsing a text file that reads
 these two values I need it to say they are equal.

 Thanks.
Seems to be the same problem as discussed here: http://forum.dlang.org/thread/jsemibukuzkjssdbtkcf forum.dlang.org
Thanks
Oct 05 2012