2008-11-18 11 views

Odpowiedz

5

EDIT: Zgodnie z sugestią Halr9000 za

$foo = "300-"; 
$bar = 0; 
$numberStyles = [System.Globalization.NumberStyles]; 
$cultureInfo = [System.Globalization.CultureInfo]; 

[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar); 
0

Jeśli jesteś pewien, że znaki mogą być - lub +, String.Replace może pomóc.

Jeśli chcesz, aby 323 powróciło -323, sprawdzenie znaku i pomnożenie go przez -1 pomogłoby.

2
[System.Globalization.NumberStyles]::AllowTrailingSign 

Należy również zwrócić uwagę, że gdy mam do czynienia z ogólnie przyjętymi wyrażeń, czasami można uzyskać wpisując ciąg znaków. Na przykład. w tym przypadku, wystarczy umieścić

"AllowTrailingSign" 

Ostatnia uwaga, podczas quizu wyliczenia dla wszystkich możliwych wartości, użyj wiersz:

[System.Globalization.NumberStyles] | gm -static 
1

Oto lepszy sposób na uzyskanie wartości wyliczeniowych:

$type = [System.Globalization.NumberStyles] 
[enum]::GetValues($type) 
+0

Zobacz ms do mnie masz na myśli: $ type = [System.Globalization.NumberStyles]; [enum] :: GetValues ​​($ type); –