What is wrong with my "if is integer" code

10 ビュー (過去 30 日間)
Michael  Kurniawan
Michael Kurniawan 2012 年 10 月 8 日
I have a function roman= dectoroman(number) I want first to test out for if the number is an interger or not and I tried using the isinteger function but somehow its not working and not really sure why.
if isinteger(number)
x = [ 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]; % Array of intergers (x)
y = {'M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'};% array of strings equalling intergers above respectivly (y)
roman=[];%Instantiating
for ii = 1:numel(x)
number >= x(ii);
roman = [roman,repmat(y{ii},1,fix(number/x(ii)))];
number = rem(number,x(ii));
else
error('error')
end
end
end
wondering if there was anyway to test if its not an integer so i can just go if its to an integer ---> error end
  2 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2012 年 10 月 8 日
where is your if?
Walter Roberson
Walter Roberson 2012 年 10 月 8 日
Azzi, the first line, "if isinteger(number)"

サインインしてコメントする。

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2012 年 10 月 8 日
編集済み: Azzi Abdelmalek 2012 年 10 月 8 日
because
isinteger(1)=0 % for example
try
if fix(a)==a

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2012 年 10 月 8 日
A number is an integer if mod(number,1) == 0

カテゴリ

Help Center および File ExchangeParticle & Nuclear Physics についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by