2017-12-30 2 views
0

ここに私のコードです。私は分かりません、10進数でそれを作る方法。私はそれのような例を書いて1つのヒントを見つけました:3/10(= 0.3)。しかし、私ははるかに多くの数字を持っていて、毎回エラータイプを投げます:cmd - 無効な番号です。数字は32ビットの精度に制限されています

"数値は32ビット精度に制限されています。"

誰かが修正方法を知っていますか? ありがとうございます

@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

これは、バッチの代わりにPowerShellを使用することをお勧めします。エラー状態として、バッチは32ビット整数しか扱えません。 – SomethingDark

+1

Windowsコマンド・インタープリターは、32ビット符号付き整数算術のみをサポートします。浮動小数点演算や64ビット整数演算は 'cmd.exe'ではサポートされていません。この作業には、VBScript、JScript、PowerShellなどの異なるスクリプト言語を使用するのが最適です。または、このコンバーターはC++/C#で書かれていて、使いやすいGUIアプリケーションにコンパイルされています。または、Excelなどのスプレッドシートアプリケーションがこのコンバータに使用されます。ところで、多くのフリーユニットコンバータがあります.WindowsやMicrosoftのフリーユニットを変換するためのwww検索エンジンで検索してください。 – Mofi

答えて

0

これは正しい数式を生成しますか? kcal変数は数値ではなくテキスト文字列であることに注意してください。あなたはそれで数学をすることはできません。また、私はこれが色の変化を保持していることを知らない。

@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 
関連する問題