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, 9411 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.
mfg
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
mfg
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
Router & Routing

192.168er Adresse im öffentlichen Netz

(2)

Erfahrungsbericht von visco-c zum Thema Router & Routing ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch und Powershell (2)

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (29)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Hyper-V
HYPER V und USB (16)

Frage von Hendrik2586 zum Thema Hyper-V ...

SAN, NAS, DAS
Backupserver für KMU (14)

Frage von Leo-le zum Thema SAN, NAS, DAS ...