I have this program that gets all the numbers from a double variable, removes decimal marks and minuses and adds every digit separately. Here is is: 

```
static void Main(string[] args)
    {

            double input = double.Parse(Console.ReadLine());

                char[] chrArr = input.ToString().ToCharArray();

                input = 0;

                foreach (var ch in chrArr)
                {
                    string somestring = Convert.ToString(ch);
                    int someint = 0;
                    bool z = int.TryParse(somestring, out someint);
                    if (z == true)
                    {
                        input += (ch - '0');
                    }
                }

```

The problem is for example when I enter "9999999999999999999999999999999...." and so on, it gets represented as `1.0E+254` and what so my program just adds `1+0+2+5+4` and finishes. Is there efficient way to make this work properly ? I tried using string instad of double, but it works too slow..