Benutzer mit den meisten Antworten
Addieren PowerShell

Frage
-
Hallo
Ich habe ein Problem beim Addieren - satt einer Summe erhalte ich die einzelnen Werte hintereinander
foreach ($entry in $node){
$t1 = $entry.Amt.'#text'
$to = $to + $t1Ich erhalte 250.151382.201473.70 statt das Total 3106.05
Liegt das eventuell am Punkt (muss es ein Komma sein), wenn ja gibt es eine einfach Lösung?
Vielen Dank zum Voraus und Grüsse, nebbiolo
Antworten
-
Moin,
ja, der erste Summand bestimmt den Typ, und das Addieren von Strings ist Hintereinanderschreiben.
Du kannst z.B. $to mit 0 initialisieren, würde schon helfen. Wenn allerdings einer der Werte nicht in eine Zahl konvertierbar ist, kriegst Du einen Fehler. Wenn's OK ist, solche Werte als 0 in die Summe einfließen zu lassen, könntest Du dir mit
$to += ($t1 -as [double])
behelfen.
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert Yavor TanevMicrosoft contingent staff Montag, 21. August 2017 10:40
-
Wenn du sowieso nur auf deutsch arbeitest, dann ersetze einfach den Punkt durch ein Komma.
Nee, lass mal. Dezimaltrennzeichen ist immer Punkt, nur bei der Ausgabe greift die Kultur:
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert Yavor TanevMicrosoft contingent staff Montag, 21. August 2017 10:40
Alle Antworten
-
Moin,
ja, der erste Summand bestimmt den Typ, und das Addieren von Strings ist Hintereinanderschreiben.
Du kannst z.B. $to mit 0 initialisieren, würde schon helfen. Wenn allerdings einer der Werte nicht in eine Zahl konvertierbar ist, kriegst Du einen Fehler. Wenn's OK ist, solche Werte als 0 in die Summe einfließen zu lassen, könntest Du dir mit
$to += ($t1 -as [double])
behelfen.
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert Yavor TanevMicrosoft contingent staff Montag, 21. August 2017 10:40
-
Das nehme ichauch mal an, dass die aktuelle Sprachumgebung für Dezimalzeichen verwendet wird.
In diesem Fall muss man die Zahlen auf die aktuelle Umgebung anpassen.
Mittels get-culture kann man die Informationen bzgl. der Verwendung abfragen.
Wenn du sowieso nur auf deutsch arbeitest, dann ersetze einfach den Punkt durch ein Komma. -
Wenn du sowieso nur auf deutsch arbeitest, dann ersetze einfach den Punkt durch ein Komma.
Nee, lass mal. Dezimaltrennzeichen ist immer Punkt, nur bei der Ausgabe greift die Kultur:
Evgenij Smirnov
I work @ msg services ag, Berlin -> http://www.msg-services.de
I blog (in German) @ http://it-pro-berlin.de
my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
Exchange User Group, Berlin -> http://exusg.de
Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com- Als Antwort markiert Yavor TanevMicrosoft contingent staff Montag, 21. August 2017 10:40
-
SUPER, vielen Dank für die sofortige Hilfe!!!
ich haben nun $to = 0 am Anfang definiert ... und es funktioniert wie gewünscht :-)
Danke, Danke, Danke ...
- Als Antwort markiert Yavor TanevMicrosoft contingent staff Montag, 21. August 2017 10:40
- Tag als Antwort aufgehoben Yavor TanevMicrosoft contingent staff Montag, 21. August 2017 10:40