将CSV中的所有数字四舍五入到两个小数点

时间:2015-07-01 18:29:19

标签: powershell csv scripting rounding

我希望在第二个小数位后舍入(或简单地删除)CSV文件中的所有数字。

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

1 个答案:

答案 0 :(得分: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