2014-04-25 121 views
0

這裏是我的代碼,將字符串轉換成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:字符串)[],RuntimeException的
FullyQualifiedErrorId:MethodNotFound

從我讀,我將一切成int,但它仍然不運行。誰能告訴我爲什麼?

回答

2

在第9行,你初始化$ currentAmount爲空數組:

$currentAmount = @() 

再後來你積累[INT]項目成數組:

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

那麼什麼你有一個[int]的數組。

最終你嘗試做減法運算與數組:

$remainAmount = $currentAmount - $checkAmount 

和失敗。

錯誤消息中的[Type []]語法指示它是一個數組,您不能對此進行減法運算。

+0

我看到....解決了我的問題。剛剛添加[0]到它結束它通過。再次感謝! –