将字符串转换为int以进行减法

时间:2014-04-25 17:45:08

标签: string powershell int

这是我的代码,

$fourCount = 0
$rowCount = 0
foreach($row in $ResultsTable){
  if ($row.'RowType' -eq 6) {
    if ($fourCount -gt 0) {
      #Sort-Object {$row.'CheckDate'} - descending
      $remainAmount = $currentAmount - $checkAmount
      $ResultsTable.Rows[$rowCount - 1].'Final' = $remainAmount
      $currentAmount = @()
      $fourCount = 0
      $remainAmount = 0
    }
    $checkAmount = [int]$row.'amount'
    $rowCount = $rowCount + 1
  } elseif ($row.'RowType' -eq 4) {
    if($row.'current'.Length -eq $NULL) {
      Continue
    } else {
      $currentAmount += [int]$row.'current'
      $rowCount = $rowCount + 1
      $fourCount++
    } 
  } else {
    Continue
  }
}

我运行代码时遇到的问题是

  

方法调用失败,因为[System.Object []]不包含   方法名为'op_Subtraction'。

     

$ remainAmount = $ currentAmount - <<<< $ checkAmount    CategoryInfo:InvalidOperation:(op_Subtraction:String)[],RuntimeException
   FullyQualifiedErrorId:MethodNotFound

从我读到的内容,我将所有内容转换为int但仍然无法运行。谁能告诉我为什么?

1 个答案:

答案 0 :(得分:3)

在第9行,您将$ currentAmount初始化为空数组:

$currentAmount = @()

然后你将[int]项积累到该数组中:

$currentAmount += [int]$row.'current'

所以你拥有的是[int]数组。

最后你尝试用该数组进行减法运算:

$remainAmount = $currentAmount - $checkAmount

它失败了。

错误消息中的[Type []]语法表明它是一个数组,你不能对它进行减法运算。