Main Content

fi コンストラクターが globalfimath の規則に従わない

問題

fi コンストラクターの引数で fimath プロパティが使用されていない場合、fi オブジェクトの作成には、globalfimath の設定に関係なく、常に最も近い整数への丸めと飽和オーバーフローが使用されます。

考えられる解決策

この動作がアプリケーションに適していない場合、以下のいずれかを行うことができます。

関数 cast を使用して globalfimathrules を使用する fi オブジェクトを作成する

G = globalfimath('RoundingMethod', 'Floor', 'OverflowAction','Wrap');
cast(x, 'like', fi([],1,16,10))

関数 cast を使用して fi オブジェクトを作成する場合、結果として作成される fi オブジェクトはローカル fimath をもちません。

fi コンストラクター内で fimath プロパティを指定する

fi(x,1,16,10,'RoundingMethod','Floor','OverflowAction','Wrap');

コンストラクターで fimath プロパティをもつ fi オブジェクトを作成する場合、fi オブジェクトはローカル fimath をもちます。

参考

| |