2017-12-30 3 views
0

Hier ist mein Code. Ich weiß nicht, wie man es mit Dezimalzahlen macht. Ich habe dort 1 Tipp gefunden, um es beispielsweise so zu schreiben: 3/10 (= 0.3). Aber ich habe viel mehr Zahlen und es wirft mir jedes Mal einen Fehlertyp:cmd - Ungültige Nummer. Zahlen sind auf 32-Bit-Genauigkeit beschränkt

"Ungültige Nummer. Zahlen sind auf 32-Bit Genauigkeit beschränkt."

Weiß jemand, wie man es repariert? Danke

@echo off 
title Converter 
color 0b 
goto start 

:start 
cls 
echo Converter 1.0 
ping localhost -n 2 >nul 
goto menu 

:menu 
cls 
color 0a 
echo What to convert? 
echo 1) Kcal to Kg 
set /p menu= 
if %menu%==1 goto kcaltokg 
goto unknownsymbol 

:unknownsymbol 
cls 
color 0c 
echo Unknown symbol! 
goto menu 

:kcaltokg 
cls 
echo Set amount of Kcal: 
set /p kcal= 
set /a "kcal=%kcal%*1428571428571/10000000000000000" 
echo %kcal% kg 
pause 
+6

Dies ist einer der nur zwei Mal, die ich mit PowerShell anstelle von Batch empfehlen. Wie der Fehler angibt, kann Batch nur 32-Bit-Ganzzahlen verarbeiten. – SomethingDark

+1

Der Windows-Befehlsinterpreter unterstützt nur 32-Bit-Ganzzahlarithmetik mit Vorzeichen. Gleitkomma- oder 64-Bit-Ganzzahlarithmetik wird von 'cmd.exe' nicht unterstützt. Am besten wäre es, für diese Aufgabe eine andere Skriptsprache wie VBScript, JScript oder PowerShell zu verwenden. Oder dieser Konverter ist in C++/C# geschrieben, kompiliert zu einer netten und einfach zu bedienenden GUI-Anwendung. Oder eine Tabellenkalkulation wie Excel wird für diesen Konverter verwendet. BTW: Es gibt viele freie Einheitenumrechner, Suche mit einer Www-Suchmaschine für 'konvertieren Einheiten freie Windows oder Microsoft'. – Mofi

Antwort

0

Erzeugt das die richtige Mathematik? Beachten Sie, dass die Variable kcal eine Textzeichenfolge und keine Nummer ist. Du kannst damit nichts anfangen. Außerdem weiß ich nicht, dass dies irgendwelche der Farbänderungen behält.

@echo off 
title Converter 
color 0b 
goto start 

:start 
cls 
echo Converter 1.0 
ping localhost -n 2 >nul 
goto menu 

:menu 
cls 
color 0a 
echo What to convert? 
echo 1) Kcal to Kg 
set /p menu= 
if %menu%==1 goto kcaltokg 
goto unknownsymbol 

:unknownsymbol 
cls 
color 0c 
echo Unknown symbol! 
goto menu 

:kcaltokg 
cls 
echo Set amount of Kcal: 
set /p kcal= 

FOR /F "usebackq" %%n IN (`powershell -NoProfile -Command %kcal%*1428571428571/10000000000000000`) DO (SET "kcal=%%n") 

echo %kcal% kg 
pause 
Verwandte Themen