Compiler says cast then when done says no can do

Tower Ty towerty at msn.com.au
Wed May 21 13:23:48 PDT 2008


Koroskin Denis Wrote:
> On Wed, 21 May 2008 15:25:48 +0400, Ty Tower <towerty at msn.com.au> wrote:
> > I have this line
> >
> > double balance=values[6]-values[5]; (values 5&6 are char[])
> >
> > so I change to
> > double balance=-(double)values[6]-(double)values[5];
> > compiler says : C style cast illegal, use cast(double)values[6]
> >
> > so I change to
> > double balance=cast(double)values[6]-cast(double)values[5];
> > compiler says: Error: e2ir: cannot cast from char[] to double
> >
> > So as I see it the compiler message in this case at least is wrong or  
> > there is a problem casting from a char array to a double . Is it a  
> > problem with the compiler message?
> >
> >
> 
> What do you want to get by casting from char[] to double?
> 
> if `values[5]` stores something like "3.14" then cast won't return what  
> you expect,
> consider using something like double t = to!(double)("3.14"); or  
> toDouble("2.73")
> 
> Both are defined in std.conv
dmd 1.024
I use Tango to!(double) compiles OK but toDouble does not
The char{} values has a changeable string like "300.00" in 5 6 & 7

I tried
    double olddebit   = Float.parse(values[5]);
    double oldcredit  = Float.parse(values[6]);
    double oldbalance = Float.parse(values[7]);
 I change the amounts here then   
     double balance = oldbalance + olddebit - oldcredit - to!(double)(values[5]) +                               
                 to!(double)(values[6]);
     values[7]= to!(char[])(balance);
which compiles but the result is nan (not a number I assume)

    double olddebit   = to!(double)(values[5]);
    double oldcredit  = to!(double)(values[6]);
    double oldbalance = to!(double)(values[7]);
    
     double balance = oldbalance + olddebit - oldcredit - to!(double)(values[5]) +  
                     to!(double)(values[6]);
      values[7]= to!(char[])(balance);

this also compiles but gives nan ?


More information about the Digitalmars-d-learn mailing list