The Jakarta Project < Velocity Tools - Library >

Velocity Tools

Generic Tools

ツールドキュメント

その他のサブプロジェクト

MathTool リファレンスドキュメント
       

Velocity で浮動少数点数演算を行うツールです。

いくつかの注意点:

  • ほとんどのメソッドは Double でラップされた数値を返却し、自動的に小数点まで表示されます (例: new Double(1).toString() -> '1.0')。 これは故意にそうしています。 このツールは浮動少数点数演算を目的としているからです。 整数の演算は既に Velocity テンプレート言語でサポートされています。 '1.0' ではなく '1' が必要なら、結果に対して intValue() を呼び出してください。
  • NullPointer, NumberFormat, DivideByZero 例外は送出されません。 これらの例外はテンプレートのレンダリングを停止させてしまうからです。 デバッグのためのフィードバックとして、Velocity はこれを文字通りそのまま表示します。 (例: $math.div(1, 0) は '$math.div(1, 0)' として表示されます)
  • 数値演算の処理には java.lang.Math クラスが使用されます。
Class
 org.apache.velocity.tools.generic.MathTool
Name
 $math (Velocityコンテキスト内での推奨名)
Toolbox設定例
 
<tool>
  <key>math</key>
  <scope>application</scope>
  <class>org.apache.velocity.tools.generic.MathTool</class>
</tool>
作者
 Nathan Bubna
Method Overview
add() 加算
sub() 減算
mul() 乗算
div() 除算
pow() 累乗
max() 二つの数値の最大値
min() 二つの数値の最小値
abs() 絶対値
toDouble() 数値を Double へ変換
toInteger() 数値を Integer へ変換
roundTo() 指定された小数点位置での数値の丸め処理
roundToInt() 一番近い整数値への数値の丸め処理
getRandom() 乱数値の返却
random() 指定された範囲の乱数の返却
add()
       

加算

Double add(Object num1, Object num2)

Parameters
num1, num2
加算する値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
合計を表す java.lang.Double 。 引数が不正の場合は null

sub()
       

減算

Double sub(Object num1, Object num2)

Parameters
num1, num2
減算する値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
減算の結果を表す java.lang.Double 。 引数が不正の場合は null

mul()
       

乗算

Double mul(Object num1, Object num2)

Parameters
num1, num2
乗算する値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
乗算の結果を表す java.lang.Double 。 引数が不正の場合は null

div()
       

除算

Double div(Object num1, Object num2)

Parameters
num1, num2
除算の入力値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
除算の結果を表す java.lang.Double 。 引数が不正の場合は null

pow()
       

累乗

Double pow(Object num1, Object num2)

Parameters
num1, num2
演算値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
一番目の数値を二番目の数値で累乗した結果を表す java.lang.Double 。 引数が不正の場合は null

max()
       

二つの数値の最大値

Double max(Object num1, Object num2)

Parameters
num1, num2
演算値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
2つの数値の大きい方を表す java.lang.Double 。 引数が不正の場合は null

min()
       

二つの数値の最小値

Double min(Object num1, Object num2)

Parameters
num1, num2
演算値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
2つの数値の小さい方を表す java.lang.Double 。 引数が不正の場合は null

abs()
       

絶対値

Double abs(Object num)

Parameters
num
演算値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
絶対値を表す java.lang.Double 。 引数が不正の場合は null

toDouble()
       

数値を Double へ変換

Double toDouble(Object num)

Parameters
num
演算値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
入力値を表す java.lang.Double 。 引数が不正の場合は null

toInteger()
       

数値を Integer へ変換

Integer toInteger(Object num)

Parameters
num
演算値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
入力値を表す java.lang.Integer 。 引数が不正の場合は null

roundTo()
       

指定された小数点位置での数値の丸め処理

Double roundTo(Object decimals, Object num)

Parameters
decimals
小数点位置。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
num
丸める数値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
渡された数値を指定された小数点位置で丸めた java.lang.Double 。 引数が不正の場合は null

このメソッドはシンプルな表示フォーマットを行うのに役立ちます。 最も近い整数値に丸めたい場合は java.lang.Double ではなく java.lang.Integer を返却する roundToInt() メソッドを使用するほうが良いでしょう。


roundToInt()
       

一番近い整数値への数値の丸め処理

Integer roundToInt(Object num)

Parameters
num
丸める数値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
一番近い整数値へと丸めた java.lang.Integer 。 引数が不正の場合は null

getRandom()
       

乱数値の返却

Double getRandom()

Returns
0.0 以上 1.0 未満の java.lang.Double

random()
       

指定された範囲の乱数の返却

Integer random(Object num1, Object num2)

Parameters
num1, num2
範囲の開始値と終了値。 有効な引数はあらゆる数値 (プリミティブ、もしくは Velocity が自動的にプリミティブに変換することのできるオブジェクト) 、または数値を表す String です。
Returns
一番目の数値 以上 二番目の数値 未満の java.lang.Integer 。 引数が不正の場合は null


[訳注: この文書は 木村 貴由 高橋 達男 が翻訳しました。 日本語訳に対するコメントがあれば、report@jajakarta.orgに送って下さい。]
Copyright © 1999-2003, Apache Software Foundation