[英]How do I fix this error: “Undefined function or variable 'NaN'”?
我在黃色突出顯示的區域中收到一條錯誤消息,提示“未定義的函數或變量'NaN'”。
該代碼的目的是確定要退還給客戶的更改量。 這是基於一件物品的成本和所支付的金額。 同樣,代碼應返回一個標志,說明事務是否完成。
這不是我的全部代碼,但是我不想使此時間超出必要。
誰能告訴我怎么了?
function [Change, flag] = makeChange(Cost, Paid)
extra = Paid-Cost;
if extra > 0
Change = extra;
flag = true;
elseif extra == 0
Change = 0;
flag = true;
return
else
flag = false;
Change = NaN;
warning('That''s not enough to buy that item.');
return
end
我無法確認Octave 3.8.1
的問題。
octave:1> makeChange.m
error: 'Paid' undefined near line 4 column 9
error: called from:
error: /Path/to/makeChange.m at line 4, column 7
octave:1> Cost = 5
Cost = 5
octave:2> Paid = 10
Paid = 10
octave:3> [change, completed] = makeChange(Cost, Paid)
change = 5
completed = 1
octave:4> Cost = 10
Cost = 10
octave:5> Paid = 5
Paid = 5
octave:6> [change, completed] = makeChange(Cost, Paid)
warning: That's not enough to buy that item.
change = NaN
completed = 0
我建議將您的代碼重新格式化為以下格式:
function [Change, flag] = makeChange(Cost, Paid)
Change = Paid-Cost;
flag = true;
if Change < 0
flag = false;
Change = NaN;
warning('That''s not enough to buy that item.');
return
else
return
end
通過重構,您可以節省一些不必要的比較,分配和邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.