6

我需要使用 Powershell 将带有可选尾随符号的字符串转换为实际数字。

可能的字符串是:

  • 1000-
  • 323+
  • 456

我正在尝试将 System.Int.TryParse 与 AllowTrailingSign 的 NumberStyles 一起使用,但我无法弄清楚如何使 System.Globalization.NumberStyles 可用于 Powershell。

4

4 回答 4

5

编辑:根据 Halr9000 的建议

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

[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar);
于 2008-11-19T00:28:53.443 回答
2
[System.Globalization.NumberStyles]::AllowTrailingSign

我还应该指出,当我处理一般的枚举时,有时我可以通过输入字符串来获得。例如,在这种情况下,只需放

"AllowTrailingSign"

最后一点,在对所有可能值的枚举进行测试时,请使用以下行:

[System.Globalization.NumberStyles] | gm -static
于 2008-11-19T00:20:49.733 回答
1

这是获取枚举值的更好方法:

$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
于 2008-11-19T03:28:07.310 回答
0

如果您确定符号可能是 - 或 +,String.Replace 可能会有所帮助。

如果您的意思是 323- 应该返回 -323,检查符号并将其乘以 -1 会有所帮助。

于 2008-11-19T00:11:20.563 回答