using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] values = { " 987.654E-21", " 987,654E-21", "(98765,43210.12345)",
"9,876,543.210", "9.876.543,210", "98_76_54_32,19" };
CultureInfo ci = new CultureInfo("");
ci.NumberFormat.NumberGroupSizes = new int[] { 2 };
ci.NumberFormat.NumberGroupSeparator = "_";
CultureInfo[] providers = { new CultureInfo("en-US"),new CultureInfo("nl-NL"), ci };
NumberStyles[] styles = { NumberStyles.Currency, NumberStyles.Float };
foreach (CultureInfo provider in providers)
{
foreach (string value in values)
{
foreach (NumberStyles style in styles)
{
try {
float number = Single.Parse(value, style, provider);
Console.WriteLine("{0} ({1}) -> {2}", value, style, number);
}
catch (FormatException) {
Console.WriteLine("'{0}' is invalid using {1}.", value, style);
}
catch (OverflowException) {
Console.WriteLine("'{0}' is out of the range of a Single.", value);
}
}
}
}
}
}