忍者ブログ

和ろぐ

Lotus Notes/Domino のプログラミングや設定の覚書です。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

四捨五入処理サンプル

 数値を丸めるにはRound関数を使います。
しかし、この関数は数値によっては四捨五入してくれません。独自の丸めルールを持つようです。
一般的にはBanker's Roundと呼ばれる方式らしいのですが詳しくは知りません。
 
そこでちゃんと四捨五入する関数を作ってみました。
以下の関数がそれです。
 
■ソース
Function RoundEx( _
numExpr As Double, _  '入力値
place   As Integer _  '丸め位置(負数=整数部で四捨五入する桁/正数=小数点以下桁数)
)As Double
Dim wVal     As Double
Dim llwk     As Long
Dim lsFormat As String
If place<=0 Then
llwk  = 10^Abs(place)
wVal = numExpr / llwk
wVal = Cdbl( Format(wVal, "#0") ) * llwk
Elseif place>0 Then
lsFormat = "0." & String$( place, "0" )
wVal = Cdbl( Format(numExpr,lsFormat) )
End If
RoundEx = wVal
End Function
 
 
■実行例
RoundEx( 0.55, 0) → 1
RoundEx( 0.45, 0) → 0
RoundEx( 0.55, 1) → 0.6
RoundEx( 0.54, 1) → 0.5
RoundEx( 0.55, 2) → 0.55
 
RoundEx( 105.5, -1 ) → 110
RoundEx( 104.5, -1 ) → 100
RoundEx( 155.5, -2 ) → 200
RoundEx( 145.5, -2 ) → 100
 
■確認済み環境
・NotesR5(R5.0.11)
・Notes6.5(R6.5.4)

拍手[1回]

PR

COMMENT

Name
Title
Mail(非公開)
URL
Color
Emoji Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Comment
Pass   コメント編集に必要です
 管理人のみ閲覧

TRACKBACK

Trackback URL:

カレンダー

05 2025/06 07
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

フリーエリア

最新コメント

最新トラックバック

プロフィール

HN:
waroh
性別:
男性

バーコード

ブログ内検索

アーカイブ

P R

アクセス解析

カウンター

<<返答文書のある文書の削除を禁止する  | HOME |  添付ファイルが開けなくなったら!>>
Copyright ©  -- 和ろぐ --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]