fi コンストラクターが globalfimath の規則に従わない
問題
fi コンストラクターの引数で fimath プロパティが使用されていない場合、または fi コンストラクターの Value プロパティが指定されている場合、fi オブジェクトの作成には、globalfimath の設定に関係なく、常に最も近い整数への丸めと飽和オーバーフローが使用されます。
考えられる解決策
この動作がアプリケーションに適していない場合、以下のいずれかを行うことができます。
関数 cast を使用して globalfimathrules を使用する fi オブジェクトを作成する
G = globalfimath('RoundingMethod', 'Floor', 'OverflowAction','Wrap'); cast(x, 'like', fi([],1,16,10))
関数 cast を使用して fi オブジェクトを作成すると、プロトタイプ値にローカル fimath がない限り、結果として作成される fi オブジェクトにはローカル fimath がありません。以下に例を示します。
cast(3.6,'like',fi([],1,16,10,'RoundingMethod','floor')).
fi コンストラクター内で fimath プロパティを指定する
fi(x,1,16,10,'RoundingMethod','Floor','OverflowAction','Wrap');
コンストラクターで fimath プロパティをもつ fi オブジェクトを作成する場合、fi オブジェクトはローカル fimath をもちます。
参考
fi | fimath | globalfimath