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

Rechnen in Batch mit Kommastellen

Frage Entwicklung Batch & Shell

Mitglied: Julian57

Julian57 (Level 1) - Jetzt verbinden

27.10.2010, aktualisiert 18.10.2012, 9246 Aufrufe, 6 Kommentare

Hallo allemiteinander
ich hab mir heute einen Batch geschrieben der mir zunächst aus dem Durchmesser eines Rades den Umfang ausrechnet und anschließend die Umdrehunganzahl des Rades von x cm ausrechnet. Wobei man x selber definieren muss
Leider funktioniert das mit Kommastellen noch nicht d.h. es funktioniert zu Beispiel nicht wenn ich den Umfang ausrechen will mittels Pi
also
set /a umfang=%durchmesser%*3.14
er gibt mir dann immer umfang=0 aus was verständlich ist weil er das Komma nicht nimmt.
hier erst mal mein Programm:
01.
@echo off 
02.
FOR /f %%f IN (Durchmesser.txt) DO @set durchmesser=%%f 
03.
echo Geben sie der Strecke einen Namen 
04.
set /p name= 
05.
cls 
06.
echo Geben sie die Laenge der Strecke in cm an 
07.
set /p cm= 
08.
cls 
09.
set /a umfang=%durchmesser% * 3 // 3 soll zu Pi werden also 3.14 
10.
If %cm% GTR %umfang% (set /a um=%cm% / %umfang%) //hier sollen auch Kommastellen genommen werden 
11.
If %cm% LSS %umfang% (set /a um=%umfang% / %cm%) //hier sollen auch Kommastellen genommen werden 
12.
set /a grad=%um% * 360 
13.
echo Laenge Strecke(%name%) 
14.
echo --------------------------- 
15.
echo Centimeter Umdrehungen Grad 
16.
echo --------------------------- 
17.
echo %cm%           %um%        %grad%  //im Ergebnis sollten dann auch Kommastellen möglich sein 
18.
echo --------------------------- 
19.
echo. 
20.
echo Die Strecke %name% ist %cm%cm lang.Das sind %um%Umdrehungen mit einem Rad mit einen Durchmesser von %durchmesser%cm und einen Umfang von %umfang%cm. Die %um%Umdrehungen sind umgerechnet also %grad%Grad >> Strecke.txt  
21.
echo -------------------------------------------------------------------------- >> Strecke.txt 
22.
echo Druecken sie eine beliebige Taste um das Programm zu beenden... 
23.
pause > nul 
24.
exit
ich hoffe ihr könnt mir sagen wie ich das mache das das mit den Kommastellen auch funktioniert.
Mit freundlichen Grüßen
Julian57
Mitglied: Biber
28.10.2010, aktualisiert 18.10.2012
Moin Julian57,

Rechnen im Batch mit Nachkommastellen geht eigentlich nicht.
In dem Beitrag Batch - Dividieren ? (mit kommastelle) haben wir schon mal etwas ausführlicher darüber meditiert.

Du kannst zwar die dort skizzierten Behelfslösungen ausprobieren, aber Aufgabe und Werkzeug passen nicht zusammen
(-> Dübel und Hammer).

Grüße
Biber
Bitte warten ..
Mitglied: Julian57
28.10.2010 um 21:19 Uhr
Hallo,
danke für deine schnelle Antwort, werde dann das ganze mit XProfan schreiben.So das es dann funktioniert
Mit freundlichen Grüßen
Julian57
Bitte warten ..
Mitglied: bastla
28.10.2010 um 21:32 Uhr
@Biber
Aufgabe und Werkzeug passen nicht zusammen
Yep - daher habe ich (zur Abschreckung) mal was gedübelt (und nein, die generelle Abrundung stört mich nicht wirklich ):
01.
@echo off & setlocal 
02.
FOR /f %%f IN (Durchmesser.txt) DO @set durchmesser=%%f 
03.
echo Geben sie der Strecke einen Namen 
04.
set /p name= 
05.
echo\ 
06.
echo Geben sie die Laenge der Strecke in cm an 
07.
set /p cm= 
08.
echo\ 
09.
rem Umfang um Faktor 100 erhöht berechnen 
10.
set /a umfang00=durchmesser*314 
11.
rem ganzzahligen Umfang ermitteln 
12.
set /a umfang=umfang00/100 
13.
rem Dezimalstellen ermitteln 
14.
set /a umfangDez=umfang00%%100 
15.
set /a umfangDez+=100  
16.
set umfangDez=%umfangDez:~1% 
17.
 
18.
rem Strecke um Faktor 100 erhöhen 
19.
set /a cm00=cm*100 
20.
If %cm00% LSS %umfang00% goto :Kleiner 
21.
rem ganzzahlige Umdrehungsanzahl ermitteln 
22.
set /a um=cm00/umfang00 
23.
rem Dezimalstellen der Umdrehungsanzahl 
24.
set /a umDez=%cm00%00/umfang00%%100 
25.
set /a umDez+=100  
26.
set umDez=%umDez:~1% 
27.
rem ganzzahligen Grad-Wert 
28.
set /a grad=cm00*360/umfang00 
29.
rem Dezimalstellen Grad 
30.
set /a gradDez=%cm00%00*360/umfang00%%100 
31.
set /a gradDez+=100  
32.
set gradDez=%gradDez:~1% 
33.
goto :Ausgabe 
34.
 
35.
:Kleiner 
36.
rem ganzzahlige Umdrehungsanzahl ist 0 
37.
set /a um=0 
38.
rem Dezimalstellen der Umdrehungsanzahl 
39.
set /a umDez=%cm00%00/umfang00%%100 
40.
set /a umDez+=100 
41.
set umDez=%umDez:~1% 
42.
rem ganzzahligen Grad-Wert 
43.
set /a grad=cm00*360/umfang00 
44.
rem Dezimalstellen Grad 
45.
set /a gradDez=%cm00%00*360/umfang00%%100 
46.
set /a gradDez+=100  
47.
set gradDez=%gradDez:~1% 
48.
 
49.
:Ausgabe 
50.
echo Laenge Strecke(%name%) 
51.
echo --------------------------- 
52.
echo Centimeter Umdrehungen Grad 
53.
echo --------------------------- 
54.
echo %cm%           %um%,%umDez%        %grad%,%gradDez% 
55.
echo --------------------------- 
56.
echo. 
57.
echo Die Strecke %name% ist %cm% cm lang.Das sind %um%,%umDez% Umdrehungen mit einem Rad mit einem Durchmesser von %durchmesser% cm und einen Umfang von %umfang%,%umfangDez% cm. Die %um%,%umDez% Umdrehungen sind umgerechnet also %grad%,%gradDez% Grad>>Strecke.txt  
58.
echo -------------------------------------------------------------------------->>Strecke.txt  
59.
echo Druecken sie eine beliebige Taste um das Programm zu beenden... 
60.
pause>nul
... und nochmals nein: ich werde auch keine "Function" für die Dezimalanteilermittlung dazupappen ...

... und ein letztes Nein: VBS werde ich Julian57 auch nicht aufdrängen.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
28.10.2010 um 21:48 Uhr
[OT]
@bastla

Okay...jetzt Phase II

Jetzt dübeln wir den Pudding mit Hilfe eines GEMA-freien Klingeltons an...

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: bastla
28.10.2010 um 22:02 Uhr
[OT]
@Biber
mit Hilfe eines GEMA-freien Klingeltons
Und sowas gibt's wirklich?

Übrigens - welchen Pudding? 0

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: Biber
28.10.2010 um 22:11 Uhr
[OT]
Zitat von bastla:
> mit Hilfe eines GEMA-freien Klingeltons
Und sowas gibt's wirklich?
Klar - alle Klingeltöne ohne musikalischen Bestandteile sind GEMA-frei.

Also in Zeiten von DSDS und Xavier N. fast alle...
[/OT]
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

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

Frage von cberndt zum Thema Batch & Shell ...

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

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
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (12)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...