VBで単価×数量=金額で金額は小数点以下四捨五入にしたく下記プログラムを書きました。
DIM cAMNT AS CURRENCY
DIM cPRIC AS CURRENCY
DIM lQTY AS LONG
cAMNT = cPRIC * lQTY
cAMNT =FORMAT(cAMNT,"########")
金額小数点以下が.5の場合のみ印刷すると下記の結果になります。
OSがWINDOWS98 WINDOWS2000 の場合
Code Price Qty Amount
AAA 1.5 3 5
AAB 0.49 3 4
合計 9
OSがWindowsXP PRO の場合
Code Price Qty Amount
AAA 1.5 3 4
AAB 0.49 3 4
合計 8
XPのパソコンで動かした場合求める結果が出ません。
.5が切り捨てられます。
なぜでしょうか?宜しくお願いします
No.3ベストアンサー
- 回答日時:
オートメーションライブラリの「仕様変更」だそうです。(参考URL)
さすがにこの「仕様」は不評だった(かなり叩かれた?)ようで、SP1では
元の仕様に戻ったようです。(笑)
四捨五入はFormat関数を使用しなくても、「端数に5を加算して切り捨てる」
ことで実現できます(というか、Format関数は文字列処理の関数なので、数値
演算に使用するのはどうかと思います)。
下記はその一例です。
Public Function GetRoundOff(ByVal curData As Currency) As Currency
If curData > 0 Then
GetRoundOff = Fix(curData + 0.5@)
Else
GetRoundOff = Fix(curData - 0.5@)
End If
End Function
参考URL:http://support.microsoft.com/default.aspx?kbid=4 …
早速のご回答どうもありがとうございます。
早速SP1を入れます。
Format関数、便利なので多用していますがこの辺も見直します
No.2
- 回答日時:
Format関数はXPのSP1で修正されています。
でも、四捨五入は
Int(n + 0.5)またはFix(n + 0.5)
を使うべきでしょう。
http://www.nils.ne.jp/~ymatsu/program/vb/45.htm
http://support.microsoft.com/default.aspx?scid=k …
No.1
- 回答日時:
それはWindowsXPの仕様によるもののようです。
以下のマイクロソフトの技術情報をご覧下さい。
現在はWindowsXPにSP1を適用することで解決するようです。
参考URL:http://support.microsoft.com/default.aspx?scid=k …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 怪我 賞与計算における端数処理について 1 2022/06/27 14:34
- 数学 昔の日本人の身長表記の尺や海外の身長表記のフィートはcmに直すと小数点がつきますが、その小数点はフィ 2 2022/04/12 21:26
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) 図書カードの分配 7 2023/05/09 15:57
- 教育学 エクセルで小数点以下を四捨五入について教えてください。 2 2023/04/05 17:33
- 薬学 薬物の 90%が消化管で吸収され 30%が肝臓で初回通過効果をうけ、他に減少がない場 合の 2 2023/01/14 16:12
- 統計学 教えてください! あるくじ引きには5枚に1枚の割合でアタリが入っていると宣伝しているが、実際には20 7 2023/05/29 09:10
- Excel(エクセル) 10円の誤差が分からない 11 2022/11/13 07:25
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
5%割引の際の、小数点以下の扱...
-
今投稿して解決したのですが 更...
-
駐車場賃料の日割り計算について
-
COBOLの計算方法
-
数字の下二桁を削除したい
-
Excel有効数字の丸め方「0捨1入」
-
数字の double 型 を int型...
-
エクセルでの小数点以下切り捨...
-
負の数の四捨五入の方法
-
雇用保険料の計算式について(E...
-
エクセルでの51銭以上未満の切...
-
INT関数について
-
端数処理における「小数以下」...
-
なぜ消費税10%は×1.1なのですか...
-
【中国からの個人輸入】関税は...
-
法人税・消費税修正申告納付の仕訳
-
生産の「時間当たりの出来高」...
-
電柱敷地使用料
-
電卓で指数計算できますか?
-
端数1円消費税の仕訳を教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
5%割引の際の、小数点以下の扱...
-
COBOLの計算方法
-
駐車場賃料の日割り計算について
-
エクセルでの小数点以下切り捨...
-
今投稿して解決したのですが 更...
-
Access 1000以下を切り捨てる関数
-
Excel有効数字の丸め方「0捨1入」
-
端数処理における「小数以下」...
-
負の数の四捨五入の方法
-
勤務の稼働時間の計算がわかり...
-
数字の下二桁を削除したい
-
数字の double 型 を int型...
-
50銭以下切り捨て51銭以上切...
-
次の計算式を使って、 利益率12...
-
ADOで算術型のRound関数を使いたい
-
雇用保険料の計算式について(E...
-
あなたの得意な言語、知ってい...
-
切捨てする関数はありますか?
-
excel関数で四捨五入以外の切り...
-
切り捨てて百の位までのがい数...
おすすめ情報