ConvertTo-DoubleInvariant #
ÜBERSICHT #
Konvertiert einen Wert im US-/Invariant-Format in einen Double und rundet auf die gewünschte Anzahl Nachkommastellen.
SYNTAX #
ConvertTo-DoubleInvariant [-Value] <object> [[-Decimals] <int>] [<CommonParameters>]
BESCHREIBUNG #
Erwartet Zahlen als Text im Invariant-/US-Format: ‘.’ als Dezimaltrennzeichen, ‘,’ als Tausendertrenner. Beispiel: “1,234.567” -> 1234.567. Ebenfalls akzeptiert werden bereits numerische Eingaben (Double, Decimal, Int). Es wird mit MidpointRounding.AwayFromZero gerundet (kein Banker’s Rounding).
PARAMETER #
-Value #
Type: object
Der zu konvertierende Wert. Kann String oder numerisch sein. Strings werden invariant geparst.
-Decimals #
Type: int
Default: 2
Anzahl der Nachkommastellen für die Rundung. Standard ist 2.
AUSGABEN #
System.Double
BEISPIELE #
# Liest "204.000" (US-Format) als 204.0 und rundet auf 2 Nachkommastellen
ConvertTo-DoubleInvariant -Value '204.000'
# Liest "1,234.56" mit Tausendertrennzeichen als 1234.56
ConvertTo-DoubleInvariant -Value '1,234.56' -Decimals 2
# Pipeline-Nutzung mit Freitext
# Erwartet US-Format und rundet auf 3 Nachkommastellen
'204.125' | ConvertTo-DoubleInvariant -Decimals 3
# Verwendung im Kontext der Positionsmenge (z. B. aus XML)
# Erwartet US-Format in der XML und rundet auf 3 Nachkommastellen
$qtyText = '204.000'
[double]$quantity = ConvertTo-DoubleInvariant -Value $qtyText -Decimals 3