decimal.TryParse z NumberFormatInfo - blad parsowania

0
        var provider = new System.Globalization.NumberFormatInfo();
        provider.NumberDecimalSeparator = ".";
        provider.NumberGroupSeparator = " ";
        provider.CurrencyDecimalSeparator = ".";
        provider.CurrencyGroupSeparator = " ";
        provider.PercentDecimalSeparator = ".";
        provider.PercentGroupSeparator = " ";
        

        string amountStr = "3 245.00";
        decimal amountTmp;
        if (decimal.TryParse(amountStr, NumberStyles.Number, provider, out amountTmp))
            Console.WriteLine("OK {0}", amountTmp);
        else
            Console.WriteLine("Error");

ja juz sie zafiksowalem, nie wiem o co chodzi
decimal separator i group separator sa w format providerze ustawione dobrze (jak w stringu), wybrany NumberStyle dopuszcza decimal point i thousands
wiec czemu wywala blad parsowania (przy uzyciu Convert exception "nieprawidlowy format wejsciowy")
jak usune spacje z stringa jest ok

dziwna opcja
jesli CurrentCulture ma taki sam NumberDecimalSeparator to jest ok (nawet jesli GroupSeparator jest inny)
jak w stringu decimal separator podmienilem na taki jak w CurrentCulture to zadzialalo
wyglada jakby uzywal separatora z CurrentCulture a nie z format providera
jakos nigdy nie pamietam zebym mial jakies tego typu problemy :/

0

sam sobie odpowiem :)

zamiast spacji char 32, mam tak jakis chory znaczek char 160 (czyli no-breake space w utf-8)
cos sie zwalilo przy przesylaniu do serwisu, grrrr

0

Nie, pewnie to tyklko formatowanie tekstu -- 3_245 jako   zeby przegladarka nie polamala numerow miedzy dwie linie przypadkiem. Niemniej, dziwie sie ze walnelo bledem, sadzilbym ze rozpoznaje znaki przez isspace a on powinien nbsp rozpoznac..

1 użytkowników online, w tym zalogowanych: 0, gości: 1