kriegstreiber
Goto Top

Variable soll vorne gekürzt werden. "math" wegen "." nicht möglich

Hallo Community,

ich habe ein kleines Problem, für das ich keine Lösung finde, bzw. meine Ideen nicht umsetzbar sind.

Beispiel. Die Eingabe meiner Variable kann wie folgt aussehen:

if "%MinDML%"=="0.0500" set "MinDML=500" ???  
if "%MinDML%"=="0.0050" set "MinDML=50"  
if "%MinDML%"=="0.0010" set "MinDML=10"  
if "%MinDML%"=="0.0001" set "MinDML=1"  

Wie ersichtlich ist, muss immer das "0.000" vor der Zahl verschwinden.
Die Konstallation 0.000,0.00,0.0 ist immer identisch, nur das nachfolgende kann sich verändern und das will ich gerne behalten.

Ich hatte was mit "find" im Kopf, aber das fällt weg weil bei 0.00 z.B. dann auch 0.000 triggert.

Hat jemand eine Idee, wie ich den String dermassen umändern kann, das alles bis zur ersten Zahl (welche keine 0 ist) stehenbleibt?

Content-ID: 2932137905

Url: https://administrator.de/contentid/2932137905

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

colinardo
Lösung colinardo 30.05.2022 aktualisiert um 08:23:12 Uhr
Goto Top
Servus.
Hat jemand eine Idee, wie ich den String dermassen umändern kann, das alles bis zur ersten Zahl (welche keine 0 ist) stehenbleibt?
Hier hilft dir wie so oft ein FOR-Loop
for /f "tokens=* delims=0." %%a in ("0.0050") do @echo %%a  
Grüße Uwe
Mika909
Mika909 30.05.2022 um 10:20:31 Uhr
Goto Top
string umwandeln in float und dann mit 10000 multiplizieren und in einen String zurück konvertieren?!
Kriegstreiber
Kriegstreiber 31.05.2022 aktualisiert um 21:27:11 Uhr
Goto Top
for /f "tokens=* delims=0." %%a in ("0.0050") do @echo %%a  

Sieht gut aus, danke.

string umwandeln in float und dann mit 10000 multiplizieren und in einen String zurück konvertieren?!

Ich habe leider keine Idee wie ich das mit Batch umsetzen könnte.