VBScript で四捨五入する (unibon)
1999年09月14日: 新規作成。
VBScript で四捨五入します。
VBScript には「丸め」る機能として、CLng や CInt や、あるいは、Round 関数があります。これらの挙動は四捨五入に似ていますが、厳密に言えば四捨五入ではありません。
たとえば、CLng(1.5) = 2 となるので良さそうに見えますが、CLng(2.5) = 2 となってしまいます。これは四捨五入ではありません。
今回は、標準の Round 関数と同等のインターフェースながら、挙動が四捨五入となる関数を VBScript で作成しました。オマケとしては第2(1から数えて)引数が負の場合は、それなりの挙動をするようにしました(Round 関数はそもそも受け付けない)。
使用例:
Dim x
x = 2.5
Call MsgBox("Round = " & Round(x, 0) & ", MyRound = " & MyRound(x, 0))
Function MyRound(ByVal a, ByVal b)
Dim k
Dim x
If b >= 0 Then
k = CLng(10 ^ b)
x = Int(a * k + 0.5) / k
MyRound = x
Else
k = CLng(10 ^ (-b))
x = Int(a / k + 0.5) * k
MyRound = x
End If
End Function
ASP の目次
ホーム
(このページ自身の絶対的な URL)