2015-07-01 153 views
0

我想在第二个小数位后舍入(或直接删除)CSV文件中的所有数字。将CSV中的所有数字舍入为两位小数

我知道[Math]::Round()和.NET版本的'{0:f2}'。只是不知道如何将其应用于整个CSV文件。

+0

导入CSV文件到powershell,并用你提到的[system.math] :: round处理每个项目,然后导出到一个新的csv文件 – Avshalom

回答

1

比方说,你有csv文件是这样的:

Name Num1  Num2  Num3  
---- ----  ----  ----  
Test1 4.2414  346.2425 33.24124 
Test2 123.35235 56.35235 326.23535 
Test3 12424.2424 57.3525 466.3525 
Test4 4364.343 12.241212 1.12424 
Test5 12.552353 464.352353 346.4646 
Test6 323.535235 46.235235 235.2352 

导入CSV文件,并运行此:

$csv = import-csv C:\temp\testfile.csv 
foreach ($Item in $csv) 
{ 
$Item.Num1 = [math]::Round($Item.Num1,2) 
$Item.Num2 = [math]::Round($Item.Num2,2) 
$Item.Num3 = [math]::Round($Item.Num3,2) 
} 

## To save to new file 
$Csv | Export-Csv C:\temp\testfile2.csv -NoTypeInformation 

你的输出将是:

Name Num1  Num2 Num3 
---- ----  ---- ---- 
Test1 4.24  346.24 33.24 
Test2 123.35 56.35 326.24 
Test3 12424.24 57.35 466.35 
Test4 4364.34 12.24 1.12 
Test5 12.55 464.35 346.46 
Test6 323.54 46.24 235.24 
+0

不是黄金我一直在寻找但同样好的票。谢谢! – RichT

相关问题