Convert a number and accept any decimal separator

I have a double number 0,401780062641746

I want to format it to 0.40178006

I'm using this code:

string.Format("{0:0.00000000%}", dNum);

But the result is 40.17800626

I want to be able to type either . or , for decimal separator. So I'm using

NumberStyles.Any

Example:

double.TryParse(textBox1.Text, NumberStyles.Any, CultureInfo.InvariantCulture, out dNum);

but apparently that's a problem and now I can't convert the number the way I want.
Any ideas?

Jon Skeet
people
quotationmark

If you only need to cope with decimal points, so you don't need to handle grouping separators, the simplest option would be to just replace any commas with dots:

string input = ...;
input = input.Replace(',', '.');
double value;
if (double.TryParse(input, CultureInfo.InvariantCulture))
{
    // Use value
}
else
{
    // Handle invalid input
}

Note that this will only cope with . and , as decimal separators, and won't perform any other culture-specific parsing.

people

See more on this question at Stackoverflow