简单的数学程序不会工作?

时间:2016-12-04 20:42:04

标签: batch-file

我正在尝试创建一个batch程序,将输入添加到232,然后将结果除以470.如果有人告诉我如何制作它以便用户输入的话也会很好一个字母而不是数字或无效字符,除了数字之外的任何东西,程序都会执行“goto命令”。谢谢!

PS当前代码输出0,无论输入如何。

继承我的代码:

@echo off
title Grade
:1
cls
set /p input= "Grade: "
set /a input1= input + 232
set /a input2= input1 / 470
echo %input2%
pause
goto 1

1 个答案:

答案 0 :(得分:0)

对于您的除法方程,批处理文件不支持浮点运算,因此您无法获得真正的答案。任何小于238的输入都会为你的商返回0。

这里有一些代码可以让您了解如何保证数字输入。

:Blurb
   @Echo off
   Cls
   Echo Grade Math
:GetNum
   Echo.
   Set /p _Input="Grade: "
   Set "_Num="
   For /f "delims=0123456789" %%i in ("%_Input%") Do Set "_Num=%%i"
   If Defined _Num Echo.&Echo Invalid: please enter a number.&Goto :GetNum
:DoMath
   Set /a _Sum= _Input + 232
   Echo Sum = %_Sum%
   Set /a _Quotient= _Sum / 470
   Echo Quotient = %_Quotient%
   Pause
   Goto :GetNum
:End