Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch - Dividieren ? (mit kommastelle)

Frage Entwicklung Batch & Shell

Mitglied: Nowologix

Nowologix (Level 1) - Jetzt verbinden

20.02.2008, aktualisiert 04.03.2008, 18073 Aufrufe, 26 Kommentare

z.B.
-> CMD: set /a 120/13 = 9
-> RRECHNER: 120/13 = 9,2

Hey
ich würde gerne wissen ob es möglich ist mit der CMD
mit kommastellen zu dividieren...

Ich brauche dies für eine prozent rechnung:

X/100*X

nur ohne kommastellen oder ohne genaue ausgabe der rechnung
ist das kaum präzise durchzuführen...


hat jemand eine lösung ?
(unter umständen auch mit VBS)

:- )

Vielen dank für die eventuelle Mühe



Nowo
Mitglied: bastla
20.02.2008 um 22:38 Uhr
Hallo Nowologix!

(unter umständen auch mit VBS)
Na dann:
01.
@echo off & setlocal 
02.
set Zahl1=120 
03.
set Zahl2=13 
04.
set Stellen=2 
05.
 
06.
set R=%temp%\Rechne.vbs 
07.
echo Set a=WScript.Arguments:WScript.Echo FormatNumber(Eval(a(0)),a(1))>%R% 
08.
for /f %%i in ('cscript //nologo %R% "%Zahl1%/%Zahl2%" %Stellen%') do set Ergebnis=%%i 
09.
echo %Ergebnis%
Zwischen den Anführungszeichen kannst Du im Prinzip jede gültige Berechnung (auch, wie gezeigt, mit Variablen) angeben.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
20.02.2008 um 22:48 Uhr
Moin Nowologix,

nein, es lässt sich nicht am CMD-Prompt/im Batch mit Nachkommastellen rechnen.

Das Ergebnis allerdings, wenn Du es nur irgendwohin schreiben willst, kannst Du natürlich erzeugen.

Es steht dir ja frei, statt 120/13 [soll herauskommen: 9,2] zu rechnen.
01.
>set /a 1200/13 
02.
92 
03.
-oder- 
04.
>set /a 12000/13 
05.
923
...dann hast Du die "richtigen" Zahlenwerte, aber (noch) kein Komma dazwischen.

Wenn es gar nicht anders geht, dann:
01.
:: BatschDivide.cmd  
02.
@echo off & setlocal enabledelayedexpansion 
03.
REM Para1 zu teilende Zahl 
04.
REM Para2 Divisor 
05.
REM Para3 Anzahl Nachkommastellen 
06.
If [%3]==[] (echo Syntax %0: AuffemStrich UntermStrich NK) & goto :eof 
07.
Set "xNullen=000000000" 
08.
Set /a x=1!xNullen:~-%3! 
09.
 
10.
set /a ProzMalX=%1 * x /%2 
11.
set /a ProzVK=ProzMalX / x 
12.
set /a ProzNK=ProzMalX %% x 
13.
Echo %1 / %2 = %prozVK%,%prozNK% [Genauigkeit %3 Nachkommastellen]
In Aktion:
01.
>e:\test\BatschDivide.cmd 120 13 3 
02.
120 / 13 = 9,230 [Genauigkeit 3 Nachkommastellen] 
03.
 
04.
(=22:37:05  D:\temp=) 
05.
>e:\test\BatschDivide.cmd 121 13 3 
06.
121 / 13 = 9,307 [Genauigkeit 3 Nachkommastellen] 
07.
 
08.
>e:\test\BatschDivide.cmd 121 13 2 
09.
121 / 13 = 9,30 [Genauigkeit 2 Nachkommastellen]
[is' aber alles Unsinn eigentlich.... Rechnen mit Nachkommastellen is'nich im Batch.]

Grüße
Biber

[Edit] P.S. @bastla: FOR-Anweisungen kann ich auch...
01.
>for /f "tokens=5" %i in ('e:\test\BatschDivide.cmd 121 13 2') do @echo Ergebnis: %i 
02.
Ergebnis: 9,30
[/Edit]
Bitte warten ..
Mitglied: Biber
20.02.2008 um 23:06 Uhr
Nachtrag.
bastlas Parameterübergabe (mit 2 Parametern) ist in der Tat etwas weniger holprig.

Also dann:
01.
:: BatschDivide.cmd  
02.
@echo off & setlocal enabledelayedexpansion 
03.
REM Para1 Quotient zweier ganzzahlen zB 130/12 
04.
REM Para2 Anzahl Nachkommastellen 
05.
If [%2]==[] (echo Syntax %0: Quotient NK) & goto :eof 
06.
Set "xNullen=000000000" 
07.
Set /a x=1!xNullen:~-%2! 
08.
 
09.
set /a ProzMalX=x*%1 
10.
set /a ProzVK=ProzMalX / x 
11.
set /a ProzNK=ProzMalX %% x 
12.
Echo %1 = %prozVK%,%prozNK% [Genauigkeit %2 Nachkommastellen]
Demo:
01.
>e:\test\BatschDivide.cmd 121/13 2 
02.
121/13 = 9,30 [Genauigkeit 2 Nachkommastellen] 
03.
 
04.
>e:\test\BatschDivide.cmd 121/13 3 
05.
121/13 = 9,307 [Genauigkeit 3 Nachkommastellen] 
06.
 
07.
>e:\test\BatschDivide.cmd 121/13 4 
08.
121/13 = 9,3076 [Genauigkeit 4 Nachkommastellen]
Grüße
Biber
Bitte warten ..
Mitglied: miniversum
21.02.2008 um 13:45 Uhr
Warum nicht einfach so:
set /a vk=120/13
set /a nk=120%13
echo vk,nk
Bitte warten ..
Mitglied: Biber
21.02.2008 um 19:36 Uhr
Moin miniversum,
Warum nicht einfach so:
Hmmm .... weil es nicht stimmt? Weil es doch sowieso im Batch nicht geht?
Probiere es mit den Werten 101/25 oder 100/34 ...

Aber gut, auch ich hatte in meinem Schnipsel noch einen Fehler drin:
01.
:: BatschDivide.cmd v03 
02.
@echo off & setlocal enabledelayedexpansion 
03.
REM Para1 Quotient zweier ganzzahlen zB 130/12 
04.
REM Para2 Anzahl Nachkommastellen 
05.
If [%2]==[] (echo Syntax %0: Quotient NK) & goto :eof 
06.
Set "xNullen=000000000" 
07.
Set /a x=1!xNullen:~-%2! 
08.
 
09.
set /a ProzMalX=x*%1 
10.
set /a ProzVK=ProzMalX / x 
11.
REM ## BUG in V02 set /a ProzNK=ProzMalX %% x        ###fixed in next line 
12.
set ProzNK=!ProzMalX:~-%2! 
13.
Echo %1 = %prozVK%,%prozNK% [Genauigkeit %2 Nachkommastellen]
Problem. wenn die erste(n) Nachkommastellen mit "0" beginnen, wird diese "0" einfach weggeworfen.

Beispiel:
01.
>e:\test\BatschDivide_V2.cmd 101/25 2 
02.
101/25 = 4,4 [Genauigkeit 2 Nachkommastellen] 
03.
#### hier im alten code "4,4" statt "4,04" ### 
04.
>e:\test\BatschDivide.cmd 101/25 2 
05.
101/25 = 4,04 [Genauigkeit 2 Nachkommastellen] 
06.
## bereinigter Schnipsel.
Aber, wie mehrfach geschrieben, es geht doch gar nicht im Batch.

Das nächste Problem wäre, dass ja auch nicht gerundet werden würde, sondern abgeschnitten.

Von daher gilt (wie bei Datumsberechnungen) entweder VBS o.ä. nehmen oder genau wissen, wo die Batch-Minen liegen.

Grüße
Biber
Bitte warten ..
Mitglied: Biber
03.03.2008 um 06:48 Uhr
Moin Nowologix,

liest Du noch mit? Gib doch bitte mal Feedback.

Danke
Biber
Bitte warten ..
Mitglied: Nowologix
03.03.2008 um 15:07 Uhr
ja ^^
also die division funktioniert ja wunderbar...
aber die prozentrechnung...

mh... ich überdenk das ganze nochmal

gibt es keine prozentuale rechenmethode in VBS ?

ich weis vorhin gabs schon eine lösung... die aber hat nicht wirklich treffsichere ergebnisse gebracht
Bitte warten ..
Mitglied: bastla
03.03.2008 um 15:21 Uhr
Hallo Nowologix!

Kannst Du etwas genauer darstellen, wo das Problem liegt?

gibt es keine prozentuale rechenmethode in VBS ?
Was meinst Du damit?

Grüße
bastla
Bitte warten ..
Mitglied: Nowologix
03.03.2008 um 23:06 Uhr
naja ich dachte sowas wie:

"dividiere %zahl1% / %zahl2% schreibe ergebniss in datei" > calc.vbs
start calc.vbs
lese datei aus


das man quasi auf VBS ausweicht und das ganze parallel zum programm rechnen lässt...
Bitte warten ..
Mitglied: bastla
03.03.2008 um 23:14 Uhr
Hallo Nowologix!

Damit hast Du recht gut zusammengefasst, was mein im allerersten Kommentar oben geposteter Ansatz so macht (außer, dass die "calc.vbs" bei mir "Rechne.vbs" heißt ) ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
04.03.2008 um 08:02 Uhr
Moin Nowologix,

auch ich bekomme hier langsam große Kinderaugen.... kannst Du bitte Deine (jetzige) Frage oder Deine Gedankengänge noch mal neu formulieren?
Ich kann momentan das Problem nicht so richtig greifen...

Grüße
Biber
Bitte warten ..
Mitglied: Nowologix
04.03.2008 um 15:03 Uhr
Ok also

Ich will: ^^

set /a answer=%zahl1% / 100 * %zahl2%

Der Dreisatz ist nicht das problem... genausowenig wie die multiplikation.
Aber mir scheint es so als würde der CMD zum rechnen nur ein Integer und kein Real oder anderes
zur verfügung stehen. Bei rechnungen wie 101 / 3 kommt eben nicht 33,66, sondern auschließlich "33" heraus. Würde man der CMD einen buffer zuweisen der eine Gleitkommazahl zulässt wärde das ganze problem gelöst...

naja da das anscheinend nicht möglich ist, habe ich überlegt das ganze mit einem visual basic script z berechnen.

Will heißen die rechnung wird eine eine VBS datei ausgegeben, ausgerechnet und wider zurück gegeben.
Eben als z.B. 33,66
nur scheint es komplikationen mit den kommata zu geben bzw. mit der kommasetzung




PS: Vielen dank für die mühe =) tut mir leid das ich in letzter zeit sehr kurz angebunden bin, daher wenig zeit zum antworten finde
Bitte warten ..
Mitglied: miniversum
04.03.2008 um 15:34 Uhr
Mach ein Punkt statt komma.
"," -> "."
Bitte warten ..
Mitglied: Biber
04.03.2008 um 15:48 Uhr
.... hmmm, Nowologix,

aber verstanden habe ich jetzt noch nicht ganz, wieso dann mein Schnipsel nicht ausreicht..
01.
(=15:48:48  D:\temp=) 
02.
>e:\test\BatschDivide.cmd 101/3 2 
03.
101/3 = 33,66 [Genauigkeit 2 Nachkommastellen]
Grüße
Biber
Bitte warten ..
Mitglied: bastla
04.03.2008 um 17:14 Uhr
... und
01.
@echo off & setlocal 
02.
set Zahl1=101 
03.
set Zahl2=3 
04.
set Stellen=2 
05.
 
06.
set R=%temp%\Rechne.vbs 
07.
echo Set a=WScript.Arguments:WScript.Echo FormatNumber(Eval(a(0)),a(1))>%R% 
08.
for /f %%i in ('cscript //nologo %R% "%Zahl1%/%Zahl2%" %Stellen%') do set Ergebnis=%%i 
09.
echo %Ergebnis%
liefert bei mir ein (korrekt gerundetes) Ergebnis von "33,67".

Um auch noch das von miniversum angesprochene Problem "Komma vs Punkt" (das allerdings in Nowologix Beispielen noch kein Kriterium war) zu entschärfen, noch folgende Variante:
01.
@echo off & setlocal 
02.
set Zahl1=101,3 
03.
set Zahl2=3 
04.
set Stellen=2 
05.
 
06.
set R=%temp%\Rechne.vbs 
07.
echo Set a=WScript.Arguments:WScript.Echo FormatNumber(Eval(Replace(a(0),",",".")),a(1))>%R% 
08.
for /f %%i in ('cscript //nologo %R% "%Zahl1%/%Zahl2%" %Stellen%') do set Ergebnis=%%i 
09.
echo %Ergebnis%
Grüße
bastla
Bitte warten ..
Mitglied: shcshc
15.06.2011 um 10:25 Uhr
Hallo bastla,

wie müsste man das vbs-script abändern, damit als Ergebnis 1068 statt 1.068 erscheint?


Herzlichen Dank,
SHC
Bitte warten ..
Mitglied: bastla
15.06.2011 um 12:44 Uhr
Hallo shcshc!

Verwende folgende Zeile 7:
echo Set a=WScript.Arguments:WScript.Echo FormatNumber(Eval(Replace(a(0),",",".")),a(1),,,0)>%R%
Grüße
bastla
Bitte warten ..
Mitglied: shcshc
15.06.2011 um 19:19 Uhr
Hallo bastla,

Vielen Dank für die schnelle Antwort!!

SHC
Bitte warten ..
Mitglied: mycroftone
15.12.2011 um 18:33 Uhr
Hallo Biber

Deine Batchdatei funktioniert glaub ich immer noch nicht richtig.

Wenn ich die mit

>e:\test\BatschDivide_V3.cmd 23/1223 6

Aufrufe kommt als Ergebniss 0,18806 heraus.

Das richtig Ergebniss ist aber 0,018806 weißt du wo da der Hacken liegt ?
Bitte warten ..
Mitglied: bastla
15.12.2011 um 19:32 Uhr
Hallo mycroftone!

Füge vor Zeile 12 noch ein:
set "ProzMalX=%xNullen%%ProzMalX%"
Grüße
bastla

P.S.: Nicht, dass ich darauf herumhacken möchte, aber
wo da der Hacken liegt ?
hätte ich mit einem Zeichen (und ich meine nicht das Leerzeichen vor "?") weniger geschrieben ...
Bitte warten ..
Mitglied: mycroftone
15.12.2011 um 20:36 Uhr
Hallo Bastla

Ja das Problem ist gelößt.

MIt
01.
 
02.
:: BatschDivide.cmd v03 
03.
@echo off & setlocal enabledelayedexpansion 
04.
REM Para1 Quotient zweier ganzzahlen zB 130/12 
05.
REM Para2 Anzahl Nachkommastellen 
06.
If [%2]==[] (echo Syntax %0: Quotient NK) & goto :eof 
07.
 
08.
Set "xNullen=000000000" 
09.
Set /a x=1!xNullen:~-%2! 
10.
 
11.
set /a ProzMalX=x*%1 
12.
set /a ProzVK=ProzMalX / x 
13.
 
14.
set "ProzMalX=%xNullen%%ProzMalX%" 
15.
set ProzNK=!ProzMalX:~-%2! 
16.
 
17.
Echo %1 = %prozVK%,%prozNK% [Genauigkeit %2 Nachkommastellen]

Ergibt
01.
>e:\test\BatschDivide_V3.cmd 23/1223 6 
02.
23/1223 = 0,018806 [Genauigkeit 6 Nachkommastellen]
Auch
01.
>e:\test\BatschDivide_V3.cmd  2224/1223 6 
02.
2224/1223 = -1,693350 [Genauigkeit 6 Nachkommastellen]
Bring das richtig Ergebnis

Aber
01.
>e:\test\BatschDivide_V3.cmd  22123/1223 6 
02.
22123/1223 = 0,529978 [Genauigkeit 6 Nachkommastellen]
Bringt 0,529978 aus und nicht 18,089125

Also sehr selltsam.
Bitte warten ..
Mitglied: bastla
15.12.2011 um 20:54 Uhr
Hallo mycroftone!

Hatte Biber weiter oben erwähnt, dass das Ganze in Batch eigentlich nicht geht?

Da der Zahlenbereich für arithmetische Operationen nur von -2147483648 bis 2147483647 reicht, sind auch der Hilfkonstruktion "multiplizieren wir zwischendurch eben mal kurz mit 1000000" Grenzen gesetzt (für 4 Nachkommastellen ginge es sich noch aus) ...

Grüße
bastla
Bitte warten ..
Mitglied: mycroftone
15.12.2011 um 21:20 Uhr
Hallo Bastel

Danke

So was ähnliches habe ich mir schon gedacht.

01.
>e:\test\BatschDivide_V3.cmd   22123/1223 4 
02.
22123/1223 = 18,0891 [Genauigkeit 4 Nachkommastellen]
funktioniert.

Schönen abend noch.
Bitte warten ..
Mitglied: Biber
15.12.2011 um 21:24 Uhr
Moin mycroftone,

ergänzend zu bastla nur noch ein weiteres Indiz für das "geht eigentlich gar nicht mit Batch"

C:\Temp>set /a 2212300/1223 
1808 
C:\Temp>set /a 22123000/1223 
18089 
C:\Temp>set /a 221230000/1223 
180891 
C:\Temp>set /a 2212300000/1223 
-1702916
-> diese ganze Set /a-Arie ist insgesamt so etwas von buggy hingewurschtelt, dass ich sie wirklich nur zum Hochzählen meines running gag counters rgc verwende.
Und auch das nur, solange der Wert so klein bleibt, dass er dem korreliert, was sich die Redmonder PraktikantInnen mit ihrer begrenzten Phantasie so vorstellen konnten.

Nimm diesen "Befehlszeileninterpreter" cmd.exe nur so ernst, wie er es verdient.
Ist ein kleines Tool für das Nötigste - aber ich glaube nicht daran, dass Heerscharen von hochbezahlten EntwicklerInnen da seit Jahrzehnten an einer Version 12.0 Premium Delüx rumfeilen.

In B- und C-Movies ist es oft so, dass du mit einer abgelaufenen PayBack-Karte in Sekundenbruchteilen eine Haustür auch ohne Schlüssel öffnen kannst.
Das kann klappen, muss aber nicht.

Im Normalfall nehmen die meisten in solchen Situationen statt einer abgelaufenen PayBack-Karte eine gültige Kreditkarte und rufen einen Schlüsselnotdienst.

Weil die Erfolgsaussichten mit dem richtigen Werkzeug spürbar höher sind.

Grüße
Biber
Bitte warten ..
Mitglied: Markus303
25.06.2015 um 19:30 Uhr
Hi Leute.
Ich bin jetzt nicht gerade der grösste Computerspezialist, aber ich glaube ich habe eine einfache Methode gefunden wie man Zahlen mit Kommastellen Dividieren kann:

z.B. 15/4=3 das gäbe dann die erste Variable= Zahl1
Dann könnt ihr für die erste Kommastelle 15*10=150 Das könnt ihr dann durch die Zahl teilen also 150/4=37
Jetzt könnt ihr 37%10 Dann kommt ihr auf 7 das ist dann die Zweite Variable= Zahl2
dann könnt ihr echo %Zahl1%.%Zahl2%

falls ihr noch die dritte Kommastelle wollt müsst ihr einfach 15*100=1500/4=375%100 =5 =Zahl3

USW..

ich versuche das jetzt noch als CMD programm zu schreiben aber wahrscheinlich ist es dann nicht ganz richtig. Wie gesagt bin noch so gut bin ja auch erst 14 XD
Bitte warten ..
Mitglied: timlg07
19.10.2016 um 19:03 Uhr
Diese Frage ist zwar schon "ziemlich" alt, aber falls jemand so etwas in der Art wissen möchte ist es vllt nicht schlecht ;)
Habe in den tiefen meiner Festplatte noch ein Programm gefunden:

01.
@echo off 
02.
title dividieren 
03.
echo DIVIDIEREN: 
04.
:BEG 
05.
set /p "ui=Aufgabe: " 
06.
:BEGFALSE 
07.
set /p "ch=[R]est/[D]ezimal " 
08.
if %ch%==r goto :Rest 
09.
if %ch%==d goto :Dezi 
10.
echo error 
11.
goto BEGFALSE 
12.
 
13.
:Rest 
14.
for /f "tokens=1,2 delims=/" %%a in ("%ui%") do set a=%%a & set b=%%b 
15.
set /a los=a/b 
16.
set /a los2=a-(los*b) 
17.
echo %los% rest %los2% 
18.
pause >nul 
19.
goto BEG 
20.
 
21.
:Dezi 
22.
for /f "tokens=1,2 delims=/" %%a in ("%ui%") do set a=%%a & set b=%%b 
23.
set /a los=a/b 
24.
set /a los2=a-(los*b) 
25.
set /a losx=los2 
26.
set    erg=%los%, 
27.
set /a count=0 
28.
:LOOP 
29.
set /a count+=1 
30.
if %count%==100 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
31.
if %count%==200 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
32.
if %count%==500 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
33.
if %count%==1000 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
34.
if %count%==5000 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
35.
if %count%==10000 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
36.
if %ui%==n goto ERG  
37.
set /a losxx=(losx*10)/b 
38.
set /a losxxx=(losx*10)-(losxx*b) 
39.
if %losxxx%==0 goto :ERG 
40.
set /a losx=losxxx 
41.
set erg=%erg%%losxx% 
42.
goto :LOOP 
43.
:ERG 
44.
echo %erg% 
45.
pause >nul 
46.
echo. 
47.
goto :BEG
Hatte zwar erst keine Ahnung was ich da mal zusammengeschraubt hatte, aber habs hier mal einfacher formuliert:

01.
@echo off 
02.
set /p "ui=Aufgabe: " 
03.
::mithilfe von for den Nenner vom Zähler trennen; 
04.
for /f "tokens=1,2 delims=/" %%a in ("%ui%") do set a=%%a & set b=%%b 
05.
::den ganzzahligen Wert ausrechnen; 
06.
set /a los=a/b 
07.
::Rest ermitteln; 
08.
set /a losx=a-(los*b) 
09.
set    erg=%los%, 
10.
set /a count=0 
11.
:LOOP 
12.
set /a count+=1 
13.
::folgendes dient zur Abfrage wie viele dezimalstellen ermittelt werden sollen; 
14.
if %count%==100 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
15.
if %count%==200 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
16.
if %count%==500 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
17.
if %count%==1000 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
18.
if %count%==5000 echo schon %count% dezimalstellen berechnet. Fortfahren? [j]/[n] & set /p "ui=" 
19.
if %count%==10000 echo schon %count% dezimalstellen berechnet. & goto ERG 
20.
if %ui%==n goto ERG 
21.
 
22.
::Vorgehen wie beim schriftlichen dividieren; 
23.
set /a losxx=(losx*10)/b 
24.
set /a losxxx=(losx*10)-(losxx*b) 
25.
if %losxxx%==0 goto :ERG 
26.
set /a losx=losxxx 
27.
::kommastelle wird zum ergebnis hinzugefügt; 
28.
set erg=%erg%%losxx% 
29.
goto :LOOP 
30.
 
31.
:ERG 
32.
echo %erg% 
33.
pause >nul
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...