Sorry,Japanese only
当サイト には 広告 宣伝 AD PR プロモーション が 含まれています。

− WindowsXP VB6 VBA Format関数 −
< Format関数を使用した四捨五入について >
 
■ 更新日 平成 15年 6月 25日 ■
 
個人的趣味で提供しています。上記 更新日以降に変更されている
可能性があります。最新データは、各個人で責任をもって調べて下さい。

データ内容が間違っていても苦情等はいっさい受け付けません。
  

<広告 の 詳細 は 画像 を クリック して下さい>
上記 以外の お薦め便利ショップ リンク集 は こちら から
 

個人的に便利と思ったことを、メモ帳感覚で記述
高額医療費対策について   身に覚えのない請求について
Windows Update 手動実行   Windows Update 自動更新
Office製品のアップデート   自動更新の停止方法
Windows XP 関連で便利だと思ったことを、メモ帳感覚で記述
ネットワーク共有名の自動検索 機能   スタートメニュー クラシック設定
XPの パフォーマンス調整   キーボード 文字入力の表示間隔
時計の自動調整 機能 ネットワーク TCP/IP DNS設定
画面テーマ クラシック設定   エラー報告機能 停止方法
WindowsXP VB6 VBA Format関数 (四捨五入) バグ情報
Norton AntiVirus ウイルス対策に関する情報
インストールと 初回設定 方法   ウイルス発見時の画面例
LiveUpdate 実行方法   ウイルス スキャン 実行方法
スパイウェアの検索 駆除方法 (Spybot1.3の場合)
インストール/セットアップ方法   スパイウェア検出/駆除方法

■◆□ グルメ情報 クーポン情報 満載 ホットペッパー □◆■

Microsoft(R) Windows(R) XP Operating System は、米国およびその他の国における登録商標または商標です。
マイクロソフト製品は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
記載されている社名、商品名、ロゴは、各社の商標または登録商標です。

戻る Home

  
 
 Windows XP と Windows 2000 で Visual Basic 6.0 の
 Format 関数を使用して 四捨五入 を行うと結果が異なる。

 
 
 ※ EXCEL 2000の VBAでも 同様の問題が発生することを確認しました。 
 ※ Visual Basic 5.0 で同様の現象が発生するかは 私は 未確認です。
 
 ※ WindowsXP Home Edition または WindowsXP Professionalで発生。 
 ※ WindowsXP は Service Pack 1 以降 未適用の場合に発生。
   Service Pack 1以降を適用していれば この現象は発生しません。
 
 
 Windows XP で Visual Basic 6.0 の Format関数を使用した 四捨五入 の
 仕様が変更された為、Windows2000 等と 計算結果が異なり、非常に
 困った経験があります。
 
 ※ Windows 2000 等とは Windows 2000 / NT / ME / 98 / 95
 
 ※ この問題は WindowsXP のService Pack 1 以降 を適用することにより 
    修正され、Windows 2000 等と同様になります。
 
 ※ SP1 には Service Pack 1 と Service Pack 1a が存在しますが、
    両バージョンで問題が解決されてることを確認しています。
 
 
 問題が発生した Format() 関数の結果
 (小数点以下の 数字を四捨五入する例です)
 
   Format("0.5","##0")      ' 0 が結果として返ります。
   Format("1.5","##0")      ' 2 が結果として返ります。
   Format("2.5","##0")      ' 2 が結果として返ります。
   Format("3.5","##0")      ' 4 が結果として返ります。
 
 丸め処理の対象となる 数値が5の場合 その1桁前の数字が 偶数で
 あれば 繰り下げ、奇数であれば 繰り上げられているみたいです。
 銀行系???の丸め処理。VB の関数で言えば Round関数と同じ
 動きだと思います。
 
 ※ 四捨五入処理だけの事であり、Format関数には いろいろな
   使用方法があり、全てと言うことではありません。ご注意下さい。
 
 
 問題をプログラムで回避する場合 (例)
 
  数値を小数点以下で 丸め処理 を行う場合は、0.5 を足して Fix 処理を 
  すれば良いと思います。
 
   例) Format("1.5","##0")  なら Fix(1.5 + 0.5)
 
 全ての四捨五入を上記様に修正するのが 望ましいですが、修正が
 多い場合、Format("0.5","##0") で 結果が ゼロ になる場合は、
 Service Pack の適用を促すのも 1つの方法だと思われます。
 
 
 正常な Format() 関数の結果
 (小数点以下の 数字を四捨五入する例です)
 
   Format("0.5","##0")      ' 1 が結果として返ります。
   Format("1.5","##0")      ' 2 が結果として返ります。
   Format("2.5","##0")      ' 3 が結果として返ります。
   Format("3.5","##0")      ' 4 が結果として返ります。
 
 
 
四捨五入の結果が異常な場合
 
四捨五入の結果が正常な場合

【ご参考】 Format関数を使用した 0.1 から 9.9 までの 四捨五入 実行結果
 
 
パソコン、モバイル、ソフトウェア 等々 お薦めショップサイト紹介
デルオンラインストア hp Directplus SOTEC パナセンス ソニースタイル
バッファローダイレクト ウィルコムストア Lenovo 富士通 パソコン工房
エプソンダイレクト イー・モバイル 楽天市場 TWO TOP Faith フェイス
K's ケーズデンキ ヤマダ電機 上海問屋 TSUKUMO Sofmap.com
<広告 の 詳細 は リンク または  画像 を クリック して下さい>
上記 以外の お薦め便利ショップ リンク集 は こちら から
 
ホテル・旅館・民宿 等々 都道府県別 お薦め宿泊サイト一覧
■◆□  都道府県別 お薦めゴルフ場 一覧  □◆■
日本全国 大学 短大 専門学校 情報
 
 
 この問題は Windows XP に含まれる オートメーション ライブラリの
 バージョンによって発生するみたいです。
 
 ※ この問題は WindowsXP のService Pack 1 以降 を適用することにより
    修正されます。
 
 Windows XP になってから オートメーション ライブラリが 3.50 系に
 なっています。Windows 2000 は 2.40 系でした。
 
 オートメーション ライブラリの ファイルバージョンは OLEAUT32.DLLを 
 見ることで調べることができます。
 (ファイルを選択して プロパティの バージョン情報を参照のこと)
 
 ※ オートメーション ライブラリのファイル構成は OLEAUT32.DLL の
   1つ だけではありません。ご注意下さい。
 
Microsoft
OLE 3.50 for Windows NT(TM) and Windows 95(TM) Operating Systems
OLEAUT32.DLL 2.40.xxxx.x Windows 2000 で使用バージョン(ご参考まで)
  ※ OLE 2.40 以降の xxxx.x の細かな記述は省略しています。。
OLEAUT32.DLL 3.50.5014.0 WindowsXP インストール後のバージョン
3.50.5015.0 特定のアップデート提供バージョンと思われる
3.50.5016.0 Windows XP Service Pack 1 適用後のバージョン
  ※ 既に OLEAUT32.DLL に 3.50.5016.0 以降のバージョンが
    存在している可能性があります。ご注意下さい。
 
  Service Pack 1 を適用していれば 通常はこの問題は解決しますが 
 まれに 古いバージョンのDLLを強制的に置き換えられる場合があります。 
  Service Pack 1 を適用していて この現象が発生する場合は DLL の 
 ファイルバージョンを 1度 ご確認してみて下さい。
  
 
 (重要)
  この OLEAUT32.DLL ファイルバージョンは 私が 調べたものであり、
  間違ってる場合もありますので 十分ご注意下さい。
 
 
 この問題は Windows XP のみで発生する、問題だと考えていました。 
 実際は他のOSでも発生する可能性があると言うことが発覚しました。 
 
 
 Windows XP 上で 問題のある オートメーション ライブラリ を含んだ
 セットアップ プログラムを作成する。このセットアップ プログラムを
 使用して Windows 2000 等へ プログラムをインストールする。
 問題があるモジュールがインストールされる為、上記 四捨五入の
 問題が発生するみたいです。
 
 Format("0.5","##0") で 結果が ゼロ になる場合 メッセージを
 出す処理を入れていて 発覚しました。
 
 何のプログラムをインストールして その様になったのかは不明ですが、 
 Windows XP でセットアップ プログラムを作成する方は ご考慮下さい。 
 
 オートメーション ライブラリは、いろんなところで使用されており また
 セットアップ プログラム なので Visual Basic 関連で作成する
 セットアップ プログラムだけに関係する話ではないと思われます。
 
 ※ EXCEL 2000 の VBA (マクロ処理)で同様の問題が発生する
   事は確認しました。
 
  

戻る Home


※ 当サイト には アフィリエイト を利用した 広告 宣伝 AD PR が 含まれています。
 
検索キーワード
Microsoft VisualBasic VisualStudio 5.0 6.0
マイクロソフト ビジュアルベーシック VB6CHKPG
ビジュアルスタジオ 四捨五入 丸め処理
Format関数 Round関数 OLEAUT32.DLL
EXCEL Access Office 2000 XP VB5 VB6 VBA
エクセル アクセス オフィス

2003 - 2004 TOYO All rights reserved.