Link to home
Start Free TrialLog in
Avatar of Tom Knowlton
Tom KnowltonFlag for United States of America

asked on

Conversion of Char to Int32 giving confusing results

In the debugger, c is equal to '4' which I expected.  But charAsInt equals 52 after the line runs, instead of 4.  It seems to be picking up the ASCII value not the raw integer value (is my guess).  

How do I get a char of '4' to be converted to an int of 4?



string cardnumber = "400006400017"

 foreach (char c in cardnumber)
            {
                int charAsInt = Convert.ToInt32(c);  // in debugger, c is equal to '4' which I expected.  But charAsInt equals 52 after this line runs, instead of 4.

                if (((charAsInt % 2) == 0))
                {
                    runningSum += charAsInt * 3;
                }
                else
                {
                    runningSum += charAsInt * 1;
                }
            }

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Julian Hansen
Julian Hansen
Flag of South Africa image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial