Dlaczego double.TryParse()
z tych ustawień nie analizowaćParsing numery z double.TryParse dziwne zachowanie
double.TryParse("1.035,00",
NumberStyles.AllowCurrencySymbol | NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite |
NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign,
GlobalSettings.Instance.DefaultCulture, out price);
gdzie DefaultCulture
jest sl-SI (słoweński), który ma kropki .
jako symbol grupowania cyfr, a jako separator dziesiętny . Po analizie składowej pozostaje 0
.
?
TryParse zwraca 'bool' wskazującą, czy parsowania wartości udało, czy nie. Dla twojego przykładu, TryParse zwraca 'false'. Tak więc przyczyną 'price' jest' 0' jest to, że nie można przeanalizować łańcucha. – dtb
Uważam za dziwne, że niektórzy będą głosować blisko ze względu na lokalizację. Jeśli problemem byłaby kultura, to wpłynęłoby to na wiele kultur, wszystkie te, które używały przecinka jako separatora dziesiętnego, który jest zarówno standardem ISO, jak i reprezentacją używaną w większości krajów –