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
関連項目