2017-12-30 51 views
0

여기에 제 코드가 나와 있습니다. 나는 그것을 어떻게 10 진수로 만드는지 모른다. 거기에 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을 사용할 것을 권장하는 두 번 중 하나입니다. 오류가 표시되면 batch는 32 비트 정수 만 처리 할 수 ​​있습니다. – SomethingDark

+1

Windows 명령 인터프리터는 32 비트 부호있는 정수 연산 만 지원합니다. 부동 소수점 또는 64 비트 정수 산술은'cmd.exe'에 의해 지원되지 않습니다. 이 작업을 위해 VBScript, JScript 또는 PowerShell과 같은 다른 스크립팅 언어를 사용하는 것이 가장 좋습니다. 또는이 변환기는 C++/C#로 작성되었으며 사용하기 쉽고 사용하기 쉬운 GUI 응용 프로그램으로 컴파일되었습니다. 또는 Excel과 같은 스프레드 시트 응용 프로그램이이 변환기에 사용됩니다. BTW : 무료 단위 변환기가 많이 있으며, '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