using System;
using System.Globalization;
using System.Linq;
public class Test
{
public static void Main()
{
var cultures = new[] { "el-GR", "en-US" }.Select(CultureInfo.GetCultureInfo);
var inputs = new[] { "1.000,41", "1,000.41", "1,000,41", "1,00041", "-1,00041", "1.00.41" };
double temp = 0;
foreach (var input in inputs) {
var d = cultures.Where(c => double.TryParse(input, NumberStyles.Number, c.NumberFormat, out temp)).Select(c => temp).OrderBy(Math.Abs).First();
Console.WriteLine("Parsing {0} gives {1}", input, d);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CiAgICAgICAgdmFyIGN1bHR1cmVzID0gbmV3W10geyAiZWwtR1IiLCAiZW4tVVMiIH0uU2VsZWN0KEN1bHR1cmVJbmZvLkdldEN1bHR1cmVJbmZvKTsKICAgICAgICB2YXIgaW5wdXRzID0gbmV3W10geyAiMS4wMDAsNDEiLCAiMSwwMDAuNDEiLCAiMSwwMDAsNDEiLCAiMSwwMDA0MSIsICItMSwwMDA0MSIsICIxLjAwLjQxIiB9OwogICAgICAgIGRvdWJsZSB0ZW1wID0gMDsKICAgICAgICAKICAgICAgICBmb3JlYWNoICh2YXIgaW5wdXQgaW4gaW5wdXRzKSB7CiAgICAgICAgICAgIHZhciBkID0gY3VsdHVyZXMuV2hlcmUoYyA9PiBkb3VibGUuVHJ5UGFyc2UoaW5wdXQsIE51bWJlclN0eWxlcy5OdW1iZXIsIGMuTnVtYmVyRm9ybWF0LCBvdXQgdGVtcCkpLlNlbGVjdChjID0+IHRlbXApLk9yZGVyQnkoTWF0aC5BYnMpLkZpcnN0KCk7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJQYXJzaW5nIHswfSBnaXZlcyB7MX0iLCBpbnB1dCwgZCk7CiAgICAgICAgfQoJfQp9