2014-04-25 120 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]到它结束它通过。再次感谢! –