Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 10298 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
Microsoft Office
Access 2010 Kommastelle wird falsch angezeigt

Frage von tdkcbundi zum Thema Microsoft Office ...

Batch & Shell
gelöst Batch und Powershell (2)

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

Windows 10
gelöst Rechner fährt nicht vollständig runter (15)

Frage von M.Marz zum Thema Windows 10 ...

Windows Server
Teamviewer am entfernten Rechner. (6)

Frage von DeathNote zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...