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, 9865 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Mehrzeiligen Powershell-Befehl mit Batch ausführen (3)

Frage von 133202 zum Thema Batch & Shell ...

Batch & Shell
gelöst EQU - GLEICH - BATCH (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch script: Problem beim Kopieren und bearbeiten, dynamischen Pfad ermitteln (27)

Frage von Hedgehogi zum Thema Batch & Shell ...

Batch & Shell
gelöst Windows 10 Batch für Datum und Uhrzeit setzen (18)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...