[VB] Round() 関数の動作が Excel 97 と違う

現象

Visual Basic 6.0 の Round() 関数の結果が、Microsoft Excel 97 のスプレッド シートにおける Round() 関数の結果と異なります。

原因

Visual Basic 6.0 の Round() 関数は "銀行型" の丸め処理を行うのに対して、 Excel 97 のスプレッド シートにおける Round 関数は "算術型" の丸め処理を行う ためです。

解決方法

丸め処理を行う関数を、独自に作成するようにしてください。

状況

この現象は仕様です。

詳細

Excel 97 のスプレッド シートにおける Round() 関数は "算術型" の丸め処理を 行います。この "算術型" 丸め処理では ".5" は常に切り上げられます。


これに対して Visual Basic 6.0 の Round() 関数は "銀行型" の丸め処理を 行います。"銀行型" の丸め処理の場合は ".5" は、結果が偶数になるように丸め 処理が行われます。切り上げられることも、切り捨てられることもあります。


たとえば "2.5" という数字があった場合、Excel 97 のスプレッドシートにおける Round() 関数における結果は "3" になりますが、Visual Basic 6.0 の Round() 関数 における結果は "2" になります。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID
194983 (最終更新日 1998-11-13) をもとに作成したものです。


プロパティ

文書番号:194983 - 最終更新日: 2004/02/04 - リビジョン: 1

フィードバック