我想检查用户输入的值是否为Integer。我尝试使用下面的代码,但它给出了错误的输出。当我输入一个分数值时,它仍然显示"it is an Integer“。
prompt = {'Please Enter the start time:','Increment:','Stop time:'}; %Asking user to enter the data
dlgtitle = 'Input'; %Creating a title for the dialog box
dims = [1 40]; %Adjusting the dimensions
definput = {'0','0.01','10'}; %Using default values to warn users not to put text instead of number
answer = inputdlg(prompt,dlgtitle,dims,definput); %storing the three items of data the user enters
start = str2num(answer{1}); %Converting start value string to number
increment = str2num(answer{2}); %Converting increment value string to number
stop = str2num(answer{3}); %Converting stop value string to number
if start >= stop
f = msgbox('Start time cannot be greater than end time! Please re-enter!', 'Error!');
elseif increment >= stop
f = msgbox('The increment cannot be larger than the end time! Please re-enter!', 'Error!');
elseif start <= -1
f = msgbox('The start time can only be positive numbers! Please re-enter!', 'Error!' );
elseif stop <= -1
f = msgbox('The end time can only be positive numbers! Please re-enter!', 'Error!');
elseif increment <= -1
f = msgbox('The increment can only be positive numbers! Please re-enter!', 'Error!');
elseif isempty(str2num(answer{1}))
f = msgbox('Input must be a number! Please re-enter!', 'Error!');
elseif isempty(str2num(answer{2}))
f = msgbox('Input must be a number! Please re-enter!', 'Error!');
elseif isempty(str2num(answer{3}))
f = msgbox('Input must be a number! Please re-enter!', 'Error!');
end
start=int16(10); %define 'count' as an 8-bit integer
integer_check=isinteger(start)% is count an integer, 1 if yes, 0 if no
if integer_check==1 % if isinteger returns a ‘1’ display message
disp(' Yes it is an integer')
else % if isinteger returns a ‘0’ display message
disp(' No it is not an integer')
end发布于 2021-11-25 16:50:08
如果是一个整数,如果除以1则没有余数。因此,用integer_check = isinteger(start)代替
使用
integer_check = rem(start,1) == 0;https://stackoverflow.com/questions/70112927
复制相似问题