現在オフラインです。再接続するためにインターネットの接続を待っています

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

この記事は、以前は次の ID で公開されていました: JP194983
現象
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 - 最終更新日: 02/04/2004 19:54:00 - リビジョン: 1.0

  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • round .5 kbprb excel KB194983
フィードバック