【发布时间】:2012-05-15 14:35:34
【问题描述】:
我目前正在导入一个CSV 文件,该文件有一列全是数字。我正在尝试将其转换为 int 并且仅提取大于 100 的值。我手动浏览了此 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
【问题讨论】:
-
文件中 SumHoldingPercent 的值是多少,'100' 还是 '100%'?
-
文件 99.99413625、100.0000006、99.9999999 中的一些示例
-
当我输入时,我假设我的问题是转换为 int,而不是 float
-
转换为 Int 应该会成功,尽管它会四舍五入您的数字。去掉变量赋值和对Measure-Object的调用,结果如何?
-
我不知道。我可以告诉你,如果我投射为浮点数,它可以完美运行
标签: loops powershell csv casting