• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 350
  • Last Modified:

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

0
Tom Knowlton
Asked:
Tom Knowlton
1 Solution
 
Julian HansenCommented:
Try this?

string cardnumber = "400006400017"

 foreach (char c in cardnumber)
            {
                int charAsInt = (int)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

0

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

Tackle projects and never again get stuck behind a technical roadblock.
Join Now