string to real conversion losing data
wrzosk
dprogr at gmail.com
Thu Apr 8 14:29:51 PDT 2010
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);
}
More information about the Digitalmars-d-learn
mailing list