Decimalクラス

提供: AB開発Wiki
2007年8月5日 (日) 11:21時点におけるEgtra (トーク | 投稿記録)による版 (ページ Decimal クラスDecimalクラス へ移動: #127)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

Decimal クラスは、COMで用いられるDECIMAL型をラップするクラスです。DECIMALは、10を基数とした指数を用いる浮動小数点数です。

クラスの機能

公開メソッド

コンストラクタ

Decimalを構築します。

Sub Decimal()

0で初期化します。

Sub Decimal(x As Long)
Sub Decimal(x As DWord)
Sub Decimal(x As Int64)
Sub Decimal(x As QWord)
Sub Decimal(x As Single)
Sub Decimal(x As Double)
Sub Decimal(x As DECIMAL)
Sub Decimal(x As Decimal)

xの値で初期化します。

Sub Decimal(lo As DWord, mid As DWord, hi As DWord, isNegative As Boolean, scale As Byte)

構成要素毎に値を指定して構築します。

lo
仮数の下32ビットを指定します。
mid
仮数の中32ビットを指定します。
hi
仮数の上32ビットを指定します。
isNegative
負の値ならTrue、正の値ならFalseを指定します。
scale
指数を0から28までの範囲の値で指定します。

暗黙的変換演算子

Decimalから変換します。

Const Function Operator () As Variant

Decimalへ変換します。

Static Function Operator(x As SByte) As Decimal
Static Function Operator(x As Byte) As Decimal
Static Function Operator(x As Integer) As Decimal
Static Function Operator(x As Word) As Decimal
Static Function Operator(x As Long) As Decimal
Static Function Operator(x As DWord) As Decimal
Static Function Operator(x As Int64) As Decimal
Static Function Operator(x As QWord) As Decimal
Static Function Operator(x As DECIMAL) As Decimal

暗黙的変換では、全ての変換で情報が失われることはありません。

明示的変換演算子

Decimalから変換します。

Const Function Operator As() As SByte
Const Function Operator As() As Byte
Const Function Operator As() As Integer
Const Function Operator As() As Word
Const Function Operator As() As Long
Const Function Operator As() As DWord
Const Function Operator As() As Int64
Const Function Operator As() As QWord
Const Function Operator As() As Single
Const Function Operator As() As Double
Const Function Operator As() As Currency
Const Function Operator As() As DECIMAL

Decimalへ変換します。

Static Function Operator As(x As Single) As Decimal
Static Function Operator As(x As Double) As Decimal

明示的変換では、DECIMALへの変換を除いて、情報が失われ、誤差が生じることがあります。

正符号演算子

Const Function Operator +() As Decimal

Thisの複製を返します。

負符号演算子

Const Function Operator -() As Decimal

このオブジェクトの保持する値の符号を反転させた値を返します。

乗算演算子

Const Function Operator *(y As Decimal) As Decimal
Const Function Operator *(y As Long) As Decimal
Const Function Operator *(y As Int64) As Decimal

除算演算子

Const Function Operator /(y As Decimal) As Decimal

加算演算子

Const Function Operator +(y As Decimal) As Decimal

減算演算子

Const Function Operator -(y As Decimal) As Decimal

比較演算子

比較演算を行います。

Const Function Operator =(y As Decimal) As Boolean
Const Function Operator =(y As Double) As Boolean
Const Function Operator <>(y As Decimal) As Boolean
Const Function Operator <>(y As Double) As Boolean
Const Function Operator <(y As Decimal) As Boolean
Const Function Operator <(y As Double) As Boolean
Const Function Operator >(y As Decimal) As Boolean
Const Function Operator >(y As Double) As Boolean
Const Function Operator <=(y As Decimal) As Boolean
Const Function Operator <=(y As Double) As Boolean
Const Function Operator >=(y As Decimal) As Boolean
Const Function Operator >=(y As Double) As Boolean
戻り値
そうでなければ比較演算の結果が真ならTure、偽ならFalse。

Abs

絶対値を返します。

Const Function Abs() As Decimal

Fix

実数を整数にします。

Const Function Fix() As Decimal
戻り値
0方向へ向かって最も近い整数を返します。

Int

実数を整数にします。

Const Function Int() As Decimal
戻り値
与えられた値を越えない最大の整数を返します。

Round

実数を整数に丸めます。

Const Function Round(cDecimals = 0 As Long) As Decimal
cDecimals
丸める小数点位置を指定します。省略すると0を指定したことになり、整数へ丸められます。
戻り値
丸められた値を返します。

Compare

比較を行います。

Static Function Compare(x As Decimal, y As Decimal) As HRESULT
Static Function Compare(x As Decimal, y As Double) As HRESULT
Static Function Compare(x As Double, y As Decimal) As HRESULT
戻り値
xがyより大きいときにはVARCMP_LT、等しいときにはVARCMP_EQ、yがxより大きいときにはVARCMP_GT、xまたはyのどちらかにNullが含まれていた場合はVARCMP_NULLが返ります。

このメソッドはVarDecCmp, VerDecCmpR8関数を内部で呼び出します。

ToString

文字列へ変換します。

Override Function ToString() As String

ToVariant

Variantクラスへ変換します。

Override Function ToVariant() As Variant

GetHashCode

ハッシュ値を求めます。

Override Function GetHashCode() As Long

公開プロパティ

Dec

内部のDECIMAL値を読み書きできます。

Const Function Dec() As DECIMAL
Sub Dec(ByRef d As DECIMAL)