有没有办法将货币字符串转换为浮动值,例如:
$1,138.15
$ 29.10
$2,195.34
应转换为:
1138.15
29.10
2195.34
某些货币字符串在美元符号和美元价值之间有空格。
我这样做是因为我从PDF中提取成本值(转换为txt文件)并对它们进行算术运算。例如,文本文件的一部分如下所示:
Fixed Power
$1,138.15
General Admin Surcharge
$ 29.10
Customer Charge
$2,195.34
我的代码看起来像这样:
$sourceFile = Get-Content $sourcePath\$($filenames[0]).txt
$fixedPower = $sourceFile[(
Select-String `
-Path $sourcePath\$($filenames[0]).txt `
-Pattern "Fixed Power" `
-List
).LineNumber + 1]
$generalAdminSurcharge = $sourceFile[(
Select-String `
-Path $sourcePath\$($filenames[0]).txt `
-Pattern "General Admin Surcharge" `
-List
).LineNumber + 1]
$customerCharge = $sourceFile[(
Select-String `
-Path $sourcePath\$($filenames[0]).txt `
-Pattern "Customer Charge" `
-List
).LineNumber + 1]
但那些只将成本提取到字符串值中。
答案 0 :(得分:6)
$Test = '$1,138.15','$ 29.10','$2,195.34'
$Test |
foreach { $_ -replace '[^0-9.]'}
1138.15
29.10
2195.34
如果你想要尾随0,你必须把它保留为[string],直到你用它做你想要的计算。
答案 1 :(得分:4)
您可以执行“替换”以删除要从字符串中删除的任何其他内容,然后将其转换为[decimal]
[decimal]$customerCharge = $customerCharge -replace "(\$| |,)"
编辑:粗糙的mjolinor击败我,并做得更好。男人他很好!