CSV 中的所有数字四舍五入到小数点后两位

Round all numbers in CSV to two decimal points

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

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

假设您有这样的 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