W dniu 08.04.2010 23:02, jicman pisze:

Greetings and salutations!

Will someone be so kind as to explain why this is happening?

----
import std.stdio;
import std.conv;

void main()
{
   char[][] strRealVals =
   [
     "14539.34","1230.00","361.62","1613.10","","","0.00"
   ];
   real rTotal = 0;
   foreach (char[] s; strRealVals)
   {
     writefln("Real value is: " ~ s);
     real r = 0.00;
     if (s != "")
       r = std.conv.toReal(s);
     rTotal += r;
   }
   writefln(std.string.toString(rTotal));
   writefln(rTotal);
}
----

When I run this program, I get this:
16:51:35.54>realtest
Real value is: 14539.34
Real value is: 1230.00
Real value is: 361.62
Real value is: 1613.10
Real value is:
Real value is:
Real value is: 0.00
17744.1
17744.1

----

If I add these numbers, the outcome should be 17744.06.  Any ideas?  I am using 
Digital Mars D Compiler v1.046.

thanks,

jos�


it is looking ok to me, try this one and thing why it is like that :)


import std.stdio;
import std.conv;

void main()
{
        writefln(17744.06);
}

Reply via email to