LabVIEWはどのように値を四捨五入あるいは強制しますか?



使用ソフトウェア:
使用ソフトウェア・バージョン: 7.1
使用ソフトウェア・バージョンに特化:
二次のソフトウェア: N/A

問題: LabVIEWが値を四捨五入あるいは強制する際、学校で教わる四捨五入の法則に従わないことに気が付きました。学校では数字の最後の桁が5以上の場合は切り上げ、5未満であれば切り捨てと教わりました。たとえば、4.5なら5に、4.4なら4へと丸めこみます。しかしLabVIEWでは4.5は4に丸めこまれます。
これは「最も近い値に丸めこみ」関数を使用すると、または強制ドットで起こります。
LabVIEWはどのように値を四捨五入あるいは強制するのでしょうか?

解決策:

これは予想される動作です。LabVIEWが値を四捨五入または強制する際には、わずかに変更された四捨五入の法則を適用します。最下位の数字が5の場合にのみこの通常と異なる法則が適用されます。常に切り上げるのではなく、LabVIEWは5の前の数字によって切り上げまたは切り捨てのいずれかを行います。5の前の数字が偶数の場合、LabVIEWは切り捨てます。奇数の場合は切り上げます。たとえば、LabVIEWは4.5を4に丸めこみますが、5.5は6へと切り上げます。

LabVIEWがこのような法則を適用する理由は統計解析に基づいています。多数の乱数からなるグループを5で四捨五入すると、統計的なエラーが発生します。偶数・奇数の法則を適用すると、多数の乱数からなるグループ内において通常偶数と奇数の割合は近いという事実に基づき、エラーを削減することができます。割合が正確に1:1の場合、エラーは完全に排除されます。たとえば、4.5と5.5を足し合わせれば結果は10となります。
これらを通常の四捨五入の法則を用いて最も近い整数に丸めこむと、答えは11になります。しかし、偶数・奇数の法則を用いて足すと答えは10です。この例では四捨五入によるエラーは10%です。


このような考え方は乱数にのみ適用されます。数字の一群が奇数あるいは偶数をより多く含む場合、切り捨てによる誤差を軽減するためには別の手法が適用されなければなりません。この場合、「最も近い値に丸めこみ」関数または強制ドットに入力される前に手動で数字を四捨五入する必要があります。これは「切り上げ整数化」関数を使用して5で切り上げるか、あるいは「切り下げ整数化」を用いて5で切り下げるかすることにより可能です。



関連リンク: KnowledgeBase 4HDJ426V: Finding the Locations of Coercion Dots within Large LabVIEW Applications

添付:





報告日時: 11/12/2002
最終更新日: 09/02/2009
ドキュメントID: 2RBC7SL8