如何在COBOL中验证用户输入以仅接受数字>;1.

如何在COBOL中验证用户输入以仅接受数字>;1.,cobol,Cobol,我有一个变量quantity,带有picx(4)。如果输入的数量不是数字,或者没有输入数量,或者输入了0,如何验证输入以显示无效数量 如果数量是数字,我尝试了,但没有成功。我使用以下公式计算总成本: COMPUTE TOTAL = FUNCTION NUMVAL (QUANTITY) * PRICE 这在很大程度上取决于您拥有的编译器(和版本)-请添加缺少的信息 一般来说:所有用户输入都应该经过验证,在您的情况下,您希望使用一个数字索引,它应该是pic9(04)。根据编译器(版本),这已经导

我有一个变量
quantity
,带有
picx(4)
。如果输入的数量不是数字,或者没有输入数量,或者输入了
0
,如何验证输入以显示
无效数量

如果数量是数字,我尝试了
,但没有成功。我使用以下公式计算总成本:

COMPUTE TOTAL = FUNCTION NUMVAL (QUANTITY)  * PRICE

这在很大程度上取决于您拥有的编译器(和版本)-请添加缺少的信息

一般来说:所有用户输入都应该经过验证,在您的情况下,您希望使用一个数字索引,它应该是
pic9(04)
。根据编译器(版本),这已经导致“字段中只有数字数据”,如果不是,您可以使用
将函数NUMVAL(输入字段)移动到quantity
,从而得到相同的结果

之后,您只需检查
数量
是否在
发生的有效范围内


quantity我不知道如何检查我的编译器版本,但我使用的是Vista TN 3270 1.27。我意识到编译器在继续我的程序顺序摘要的同时,将PIC 9(4)中的输入“a”视为“1000”,“b”视为“2000”等等。此外,“1”的输入被识别为“1000”。我想我可以使用MOVE TO和函数NUMVAL修复数字输入的“千”,但我希望它拒绝非数字,只显示“无效数量”。使用概述的技术将导致非数字结果为
0
,这是一个无效的数字,因此您可以获得所需的信息(只需一次检查)。将此添加到答案中。如果您不知道COBOL编译器的版本,您可能至少现在知道您使用的COBOL编译器,是吗?请检查更新的答案并查看-请对不清楚的部分发表评论或投票+接受。