首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Import中科学格式值的类型铸造(eg:1.565656E+02)

Import中科学格式值的类型铸造(eg:1.565656E+02)
EN

Stack Overflow用户
提问于 2015-10-21 08:34:08
回答 1查看 59关注 0票数 1

我仍然是Powershell的初学者。我正在读取从软件生成的标签分隔文本文件,以筛选出一组值。但是生成的值都是类似于IEEE浮点格式的格式。(例如: 1.5656565656E+02)。

我试过'-as'接线员,但没有用。我犯了个错误。请帮助我解决这个问题,或者是否有可能这样做。

我的选项卡分隔文件如下所示

代码语言:javascript
复制
Time [s]       Offset_Angle              observability_Analysis
0.00E+00      0.89040261167028E+00        0.00000000000000E+00
4.32E+02      0.21319658757004E+00        0.00000000000000E+00
8.64E+02      0.26803683992125E+00        0.00000000000000E+00
1.30E+03      2.67379011780784E+02        1.00000000000000E+00
1.73E+03      2.89704767087971E+02        1.00000000000000E+00
2.16E+03      2.93302157473406E+02        1.00000000000000E+00

我正在编写的代码如下所示

代码语言:javascript
复制
$ap = Import-Csv -Delimiter "`t" -Path E:\textreplace.txt

$abc = $ap|where-Object {$_.observability_Analysis -eq "1.00000000000000E+00”}|select-object –property Offset_Angle | Foreach-Object {$_.Offset_Angle = $_.Offset_Angle -as [float] $_ }
$abc|export-csv "E:\results.txt"

我正在尝试过滤那些将其Offset_Angle作为1.0000000000000E+00的observability_Analysis值。

对于第二行,它抛出错误,说明

代码语言:javascript
复制
cannot convert the {Offset_Angle = 2.67379011780784E+02} value of type Selected.System.Management.Automation.PSCustomObjectstring.object to [float].

请帮我处理这个。

EN

回答 1

Stack Overflow用户

发布于 2015-10-21 09:00:51

您需要在Offset_Angle中展开Select属性,或者在ForEach中显式地针对它,然后转换为float buy use of [float]$variable

以下任何一项都将有效:

代码语言:javascript
复制
$ap | ? { $_.observability_Analysis -eq "1.00000000000000E+00" } | select -expand Offset_Angle | % { [float]$_ }

$ap | ? { $_.observability_Analysis -eq "1.00000000000000E+00" } | % { [float]$_.Offset_Angle }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33254507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档