LOTUSSCRIPT 言語


データ型変換
LotusScript では、次に説明する状況で、あるデータ型の値が別のデータ型に暗黙的に変換されます。

数値の演算異なるデータ型の複数の数値が数値演算に使われると、値は同じデータ型に変換されて評価されます。
通常、LotusScript では Byte、Integer、Long、Single、Double、Currency の順に従って、より高いデータ型に変換されます。たとえば、Integer 型のオペランドと Double 型のオペランドがある演算では、式を計算する前に Integer 型の値が Double 型の値に変換されます。

演算における変換規則について詳しくは、各演算子のドキュメントを参照してください。

引数渡し引数を数値でプロシージャに渡す場合、プロシージャが必要とするデータ型でなければ、その値が変換されます。値が大きすぎてそのデータ型に入らなければ、エラーになります。
引数を参照によってプロシージャに渡す場合、参照のデータ型は宣言された引数のデータ型と一致しなければなりません。ただし、宣言された引数が Variant 型の場合は除きます。

Variant 型の変数変換される値が Variant 型の変数に格納されていると、文脈に応じて、LotusScript は値を数値または文字列に変換しようとします。
あるデータ型の値を異なるデータ型の値であるかのように扱ったり、あるデータ型の値について演算を実行して別のデータ型の値を生成する必要があることがあります。このような処理をデータ型の変換といいます。異なるデータ型の 2 つの数値を加算する、10 進数を文字列として 16 進表記で印刷する、または日付/時刻の値を数値であるかのように扱って計算する場合などで、何らかの形でデータ型変換が必要になります。ユーザーが LotusScript が備えている関数を使って明示的にデータ型変換を実行しなければならない場合、自動的に変換される場合、およびこの 2 つの変換方法のうちの 1 つをユーザーが選択できる場合とがあります。次に例を示します。

Dim aString As String
Dim aDouble As Double
Dim aFloat As Currency
Dim aVariantV As Variant

aString$ = "123.45"
aDouble# = 678.90

' Explicitly convert a string to a Currency value.
' That is, assign the return value of the conversion
' function CCur, which takes a String argument, to a variable
' of type Currency.
aFloat@ = CCur(aString$)
Print aFloat@
' Output:123.45
' Automatically convert a Double value
' to a Currency value by assignment.You
' could explicitly convert the value of
' aDouble# to a Currency value before
' assigning it to aFloat@.You might do
' this for the purposes of documentation.
aFloat@ = aDouble#
Print aFloat@


'Output:678.9

' Automatically convert a Variant value
' of type String to a Currency value by
' addition, and then convert the
' resulting Currency value to a value
' of type Double by assignment.You can make
' both of these conversions explicit if you want.
aVariantV = aString$
aDouble# = aVariantV + aFloat@
Print aDouble#
' Output: 802.35

関連項目