Frage von questionanswer7, 43

Batch hohe Zahlen darstellen?

Hallo

Ich verwende hohe Zahlen in einer Batchdatei, welche exponentiell wachsen. Ich habe gesehen, dass irgendwann mal Schluss ist und die Zahlen plötzlich negativ werden.

Gibt es einen Befehl oder eine Möglichkeit, dass auch grosse Zahlen dargestellt werden können?

LG

Antwort
von hypergerd, 12

Batch kommen aus DOS-Zeiten mit 16 Bit Beschränkung.

Deshalb hat Microsoft doch schon ab Windows XP die

PowerShell eingeführt.

https://de.wikipedia.org/wiki/Windows_PowerShell

Vorteil gegenüber allen anderen Sprachen: keine Installation und keine Entwicklungsumgebung nötig (läuft garantiert auf jedem neuen PC ab WinXP)

Aber was sind für Dich "große Zahlen" genau?

Wie im Bild zu sehen, kann man 64 Bit Zahlen (19 stellig) ganz darstellen,

danach wird in double übliche Exponential-Schreibweise bis 1e307 umgestellt.

Ab Version 4 kann man auch BigInteger aus der .NET Welt nutzen, wo 10000stellige Zahlen möglich sind.

ABER bevor man neue PowerShell Version installiert, sollte man sich fragen, ob andere Ziel-Rechner das auch haben und ob nicht eine richtige EXE besser geeignet ist (also schneller Compiler wie kostenlose PureBasic).

Antwort
von kloogshizer, 17

Vergiss batch, das taugt nichts... Ich hab als Jugendlicher unter windows 98 Text-Adventures in Batch geschrieben. Wenn ich damals gewusst hätte, wie schlecht das ist, und wie einfach und viel besser andere Scriptsprachen sind... 

Wahrscheinlich war das damals noch schlechter als jetzt, aber python, go und consorten sind taugen mehr... Wenn du was mit Mathe machst ist auch Haskell ziemlich toll, mir hat das die Augen geöffnet, als ich das angefangen habe zu verstehen.

Kommentar von questionanswer7 ,

Hi

Ich schreibe seit Jahren hobbymässig Batchprogramme und bisher habe ich immer das umsetzen können, was ich wollte.

Evtl. steige ich ja später mal auf was Anspruchvolleres um, aber momentan reicht mir batch plus genügend Kreativität vollkommen aus.

LG

Antwort
von Schachpapa, 27

Die meisten Programmiersprachen benutzen eine festgelegte interne Länge für Zahlen (z.B. 4 oder 8 Bytes). Wenn das Ergebnis einer Rechnung da nicht hineinpasst, kommt im besten Fall eine Fehlermeldung, im schlechteren Fall kommt Unsinn raus (wie in deinem Beispiel)

Python ist leicht zu lernen und hat diese Beschränkung nicht.
Da kannst du auch mit 500-stelligen Zahlen rechnen.

Kommentar von questionanswer7 ,

Hallo

Danke für den Tipp. Aber wie und ob man es in Batch umsetzen kann, weisst Du nicht?

Liebe Grüsse

Kommentar von kloogshizer ,

..

Keine passende Antwort gefunden?

Fragen Sie die Community