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

Genaue Prozent Rechnung!

Frage Entwicklung Batch & Shell

Mitglied: DomiZone1

DomiZone1 (Level 1) - Jetzt verbinden

08.11.2014, aktualisiert 10.11.2014, 1392 Aufrufe, 8 Kommentare

Hallo Leute

Ich möchte in einen Spiel eine Prozentrechnung der vorhandenen Leben Haben
also habe ich ein Test mit batch gestartet und bemerkt das batch die Komma stellen
nicht berücksichtigt. Nun stellt sich mir die frage wie kann ich so was implementieren ohne
die übersieht zu verlieren!

Ihr könnt auch auf vbs etc. Ausweichen wichtig sind mir 2 bis 4 stellen mindestens nach dem Komma!!!
(Man Kann es nicht nur fürs Spiel verwenden!)

Danke im voraus

LG DomiZone1
Mitglied: 114757
08.11.2014, aktualisiert um 17:40 Uhr
Bitte warten ..
Mitglied: DomiZone1
09.11.2014 um 22:47 Uhr
Sorry Aber ich brauche das bei einen aktiven Skript der sich wiederholt und abändern des vbs ist mir aktuell zu kompliziert
Acutng Extrem Abgespeckter Code
Code:
01.
@echo off 
02.
echo --------------------------------------------------------------- 
03.
echo  das hier ist leider nur eine Demo es gibt nur eine runde!!! 
04.
echo --------------------------------------------------------------- 
05.
ping -n 2 127.0.0.1>nul 
06.
cls 
07.
set Y=1000 
08.
set N=1000 
09.
set turn=--) 
10.
:Reset 
11.
cls 
12.
::Und Hier sollen die HP in Prozent umgerechnet werden 
13.
::LEQ bedeutet gleich oder weniger als ... und ist wie: == nur das das nur gleich bedeutet 
14.
if %Y% LEQ 0 goto You_lose 
15.
if %N% LEQ 0 goto You_win 
16.
echo --------------------------------------------------------------------------- 
17.
echo    %Y%                                                                %N% 
18.
echo --------------------------------------------------------------------------- 
19.
if %turn%==--) set /A Y=%Y%-%random% %%150 && set turn=(-- && ping -n 2 127.0.0.1>nul && goto Reset 
20.
if %turn%==(-- set /A N=%N%-%random% %%150 && set turn=--) && ping -n 2 127.0.0.1>nul && goto Reset 
21.
:You_lose 
22.
echo Du hast verloren 
23.
pause>nul 
24.
exit 
25.
:You_win 
26.
echo du hast gewonnen 
27.
pause>nul 
28.
exit
Ich brauche auf jeden fall mehr variablen die sind im richtigen Code aber vorhanden
aber den füge ich wegen der gösse nicht ein. Außerdem sind da ASCII Zeichen drin und ich weiß nicht ob ihr das auf OEM852
ändern könnt!


LG DomiZone1

PS: Die Größe ist (6372 Zeichen 121 Zeilen und 4,43 KB)
Bitte warten ..
Mitglied: rubberman
09.11.2014 um 23:11 Uhr
Hallo DomiZone1.

::Und Hier sollen die HP in Prozent umgerechnet werden
Was sind denn HP und um welche konkreten Werte geht es?

Selbst wenn du diese Werte mit Nachkommastellen hast, kennt Batch immer noch keine Fließkommazahlen. Das heißt auch ein numerischer Vergleich ist nicht möglich.

Wenn es darum geht zu vergleichen, dann verrücke dein Komma (durch Anhängen von Nullen am Divident). Ob nun 100 % zu 25,3412 % verglichen wird (was in Batch nicht funktioniert) oder aber 1000000 zu 253412 (was in Batch sehr wohl funktioniert) ist doch völlig egal.

Grüße
rubberman
Bitte warten ..
Mitglied: DomiZone1
09.11.2014 um 23:24 Uhr
HP sind HealthPoints oder LebensPunkt Die HP Sind die variablen Y und N
und die beiden sollen in Prozent umgerechnet werden
also statt das ich 1000 sehe das die hp dar stellt will ich das in 100% sehen sofern das 100% sind

LG DomiZone1
Bitte warten ..
Mitglied: rubberman
10.11.2014, aktualisiert um 00:06 Uhr
Hallo DomiZone1,

dann schreibe dir halt eine Subroutine die die Berechnung so ausführt, wie ich es oben angemerkt habe und anschließend das Komma per Stringmanipulation hinein editiert.
01.
@echo off &setlocal 
02.
set /a "Y=500" 
03.
set /a "N=7" 
04.
call :toPercent 1000 %Y% pY 
05.
call :toPercent 1000 %N% pN 
06.
echo %pY% %% 
07.
echo %pN% %% 
08.
pause 
09.
exit /b 
10.
 
11.
:toPercent 
12.
setlocal 
13.
set /a "prozentsatz=%~2 * 1000000 / %~1" 
14.
set "prozentsatz=000000%prozentsatz%" 
15.
set "prozentsatz=1%prozentsatz:~-7%" 
16.
set /a "vorkomma=%prozentsatz:~0,4% %% 1000" 
17.
endlocal &set "%~3=%vorkomma%,%prozentsatz:~-4%" 
18.
exit /b
:toPercent wird mit dem Grundwert, dem Prozentwert und dem Variablenname für den Prozentsatz als Argumente gefüttert.

Sinn macht das trotzdem nicht, weil du nicht numerisch mit den erhaltenen Werten weiter arbeiten kannst. (Aber das hatte ich ja oben bereits geschrieben ...)

Grüße
rubberman
Bitte warten ..
Mitglied: DomiZone1
10.11.2014 um 01:59 Uhr
Danke Deine Lösung ist gut aber... leider geht mein batch Spiel sehr gerne ins minus (Fast immer)
und da hat deine Lösung leider einen haken es stört das Skript nicht wirklich ist aber nervig
wenn oben plötzlich Fehlender Operand steht kennst du oder irgendwer anders vielleicht eine Lösung die auch im negativen
funktioniert Ihr Könnt auch vbs nehmen!
Auser vbs kann auch nicht ins negative das muss es nämlich weil die Schwierigkeiten im richtigem Spiel
damit arbeiten müssen wenn die HP variablen ins minus gehen!!!
Weil Rechnungen für den nächsten Start des Kampfes

LG DomiZone1
Bitte warten ..
Mitglied: rubberman
LÖSUNG 10.11.2014, aktualisiert um 16:24 Uhr
Hallo DomiZone1.

Ihr Könnt auch vbs nehmen!
Diese Lösung hast du ja bereits bekommen ...

leider geht mein batch Spiel sehr gerne ins minus (Fast immer)
Das ist immer so, wenn man versucht mit Batch Spiele zu entwickeln. Der Ausgang ist zu 99,999 % negativ

01.
@echo off &setlocal 
02.
set /a "Y=500" 
03.
set /a "N=-7" 
04.
call :toPercent 1000 %Y% pY 
05.
call :toPercent 1000 %N% pN 
06.
echo %pY% %% 
07.
echo %pN% %% 
08.
pause 
09.
exit /b 
10.
 
11.
:toPercent 
12.
setlocal 
13.
set /a "prozentsatz=%~2 * 1000000 / %~1" 
14.
set "vorzeichen=" 
15.
if %prozentsatz% lss 0 ( 
16.
  set "vorzeichen=-" 
17.
  set /a "prozentsatz*=-1" 
18.
19.
set "prozentsatz=000000%prozentsatz%" 
20.
set "prozentsatz=1%prozentsatz:~-7%" 
21.
set /a "vorkomma=%prozentsatz:~0,4% %% 1000" 
22.
endlocal &set "%~3=%vorzeichen%%vorkomma%,%prozentsatz:~-4%" 
23.
exit /b
Grüße
rubberman
Bitte warten ..
Mitglied: DomiZone1
10.11.2014 um 16:29 Uhr
Danke rubberman

Deine Lösung ist wie ich es mir vorgestellt habe und funktioniert jetzt 100% mit meinen Skript
endlich hab ich die Lösung

LG DomiZone1
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...