Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 我能';无法将PowerShell正确转换为int_Loops_Powershell_Csv_Casting - Fatal编程技术网

Loops 我能';无法将PowerShell正确转换为int

Loops 我能';无法将PowerShell正确转换为int,loops,powershell,csv,casting,Loops,Powershell,Csv,Casting,我目前正在导入一个文件,该文件的列都是数字。我试图将其转换为int,并且只拉大于100的int。我已经手动浏览了这个CSV文件,我可以确认有三行的值大于100%。但是,它始终返回0。我做错了什么 $percentTooLarge = Import-Csv path\file.csv | Foreach-Object { $_.SumHoldingPercent = $_.SumHoldingPercent -as [int]; $_ } | Where-Object { $_.SumHoldin

我目前正在导入一个文件,该文件的列都是数字。我试图将其转换为int,并且只拉大于100的int。我已经手动浏览了这个CSV文件,我可以确认有三行的值大于100%。但是,它始终返回0。我做错了什么

$percentTooLarge = Import-Csv path\file.csv | Foreach-Object { $_.SumHoldingPercent = $_.SumHoldingPercent -as [int]; $_ } | Where-Object { $_.SumHoldingPercent -gt 100 } | Measure-Object
$numPercentTooLarge = $percentTooLarge.Count

看看你与@Shay Levy的对话,我会使用:

[System.Globalization.CultureInfo] $culture = "en-us"
因此,您可以尝试以下方法:

([decimal]::parse($_.SumHoldingPercent ,$culture)) -gt 100

由于比较运算符在PowerShell中的工作方式,这应该可以做到:

$percentTooLarge = Import-Csv path\file.csv | 
    Where-Object { 100 -lt $_.SumHoldingPercent} | 
    Measure-Object
基本上,PowerShell在进行比较时会尝试将右转换为左。如果您将ipcsv中的值放在第一位,则左键将是一个字符串。如果您先输入一个数字-它将把CSV文件中的值转换为一个数字(它将足够智能,以保持足够大的类型;)

我使用以下代码进行了测试:

@"
foo,bar,percent
alfa,beta,120.5
beta,gamma,99.9
foo,bar,30.4
works,cool,120.7
"@ | ConvertFrom-Csv | where { 100 -lt $_.percent }

。。。结果似乎还可以。

文件“100”或“100%”中SumHoldingPercent的值是多少?文件99.99413625100.0000006、99.9999999中的一些示例,当我键入时,我假设我的问题是作为int进行强制转换,而不是将floatCasting转换为int应该会成功,尽管它会使您的数字四舍五入。删除变量赋值和对度量对象的调用,结果如何?我不知道。我可以告诉你,如果我投为浮动,它的工作完美