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
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
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