Powershell, die Programmiersprache, „weiß“ nicht, was Geld oder Währung ist - alles sieht Powershell ist ein Variablenname ($464
) und eine Eigenschaft Referenz (.00
), die nicht existiert, so $a
endet mit keinem Wert.
Wenn Sie eine Zeichenfolge in der Form haben: $00.00
, was Sie können programmatisch tun ist:
# Here is my currency amount
$mySalary = '$500.45'
# Remove anything that's not either a dot (`.`), a digit, or parentheses:
$mySalary = $mySalary -replace '[^\d\.\(\)]'
# Check if input string has parentheses around it
if($mySalary -match '^\(.*\)$')
{
# remove the parentheses and add a `-` instead
$mySalary = '-' + $mySalary.Trim('()')
}
bisher so gut, jetzt haben wir die Zeichenfolge 500.45
(oder -500.45
wenn Eingang ($500.45)
war).
Jetzt gibt es ein paar Dinge, die Sie tun können, um eine Zeichenfolge in einen numerischen Typ zu konvertieren.
Sie könnten explizit wandeln es in ein [double]
mit dem Parse()
Methode:
$mySalaryNumber = [double]::Parse($mySalary)
Oder Sie könnten auf Powershell verlassen eine implizite Konvertierung auf einen geeigneten numerischen Typ mit einem unären +
ausführen:
$mySalaryNumber = +$mySalary
PowerShell, die Programmiersprache, "weiß" nicht, was Geld oder Währung ist - alles, was PowerShell sieht, ist ein Variablenname ('$ 464') und eine Eigenschaftsreferenz (' .00'), die nicht existiert, also '$ a' endet mit keinem Wert e. –
Bearbeiten: Quellvariable kann negativ sein, in diesem Format ($ 464,00) oder positiv, in diesem Fall kann es $ 1,234.00 sein. Grundsätzlich als Währung formatiert von Excel. Müssen Sie es in eine richtige Dezimalzahl konvertieren. Danke, –
@ MathiasR.Jessen hab es geschafft .. kannst du irgendeine Lösung anbieten? –