Decimal クラス
丸めモード
各丸めモードでは、丸められた結果の返される再下位の桁を計算する方法を示します。次に、roundingMode の有効な値を示します。
Decimal のメソッド
Decimal のメソッドは次のとおりです。
abs()
署名
public Decimal abs()
戻り値
型: Decimal
例
1Decimal myDecimal = -6.02214129;
2System.assertEquals(6.02214129, myDecimal.abs());divide(divisor, scale, roundingMode)
署名
public Decimal divide(Decimal divisor, Integer scale, System.RoundingMode roundingMode)
パラメーター
- divisor
- 型: Decimal
- scale
- 型: Integer
- roundingMode
- 型: System.RoundingMode
戻り値
型: Decimal
例
1Decimal myDecimal = 12.4567;
2Decimal divDec = myDecimal.divide(7, 2, System.RoundingMode.UP);
3System.assertEquals(divDec, 1.78);doubleValue()
署名
public Double doubleValue()
戻り値
型: Double
例
1Decimal myDecimal = 6.62606957;
2Double value = myDecimal.doubleValue();
3System.assertEquals(6.62606957, value);format()
署名
public String format()
戻り値
型: String
使用方法
指数が必要な場合、科学的記数法が使用されます。
例
1// U.S. locale
2Decimal myDecimal = 12345.6789;
3system.assertEquals('12,345.679', myDecimal.format());intValue()
署名
public Integer intValue()
戻り値
型: Integer
例
1Decimal myDecimal = 1.602176565;
2system.assertEquals(1, myDecimal.intValue());longValue()
署名
public Long longValue()
戻り値
型: Long
例
1Decimal myDecimal = 376.730313461;
2system.assertEquals(376, myDecimal.longValue());pow(exponent)
署名
public Decimal pow(Integer exponent)
パラメーター
- exponent
- 型: Integer
- exponent の値は、0 ~ 32,767 です。
戻り値
型: Decimal
使用方法
MyDecimal.pow(0) を使用する場合、1 が返されます。
Math.pow メソッドでは負の値を使用できます。
例
1Decimal myDecimal = 4.12;
2Decimal powDec = myDecimal.pow(2);
3System.assertEquals(powDec, 16.9744);precision()
署名
public Integer precision()
戻り値
型: Integer
例
たとえば、小数値が 123.45 の場合、precision は 5 を返します。小数値が 123.123 の場合、precision は 6 を返します。
1Decimal D1 = 123.45;
2Integer precision1 = D1.precision();
3system.assertEquals(precision1, 5);
4Decimal D2 = 123.123;
5Integer precision2 = D2.precision();
6system.assertEquals(precision2, 6);round()
署名
public Long round()
戻り値
型: Long
使用方法
この丸めモードは、連続する計算に対して繰り返し適用される場合、統計的に累積エラーを最小化します。
例
1Decimal D = 4.5;
2Long L = D.round();
3System.assertEquals(4, L);
4
5Decimal D1 = 5.5;
6Long L1 = D1.round();
7System.assertEquals(6, L1);
8
9Decimal D2 = 5.2;
10Long L2 = D2.round();
11System.assertEquals(5, L2);
12
13Decimal D3 = -5.7;
14Long L3 = D3.round();
15System.assertEquals(-6, L3);round(roundingMode)
署名
public Long round(System.RoundingMode roundingMode)
パラメーター
- roundingMode
- 型: System.RoundingMode
戻り値
型: Long
scale()
署名
public Integer scale()
戻り値
型: Integer
例
1Decimal myDecimal = 9.27400968;
2system.assertEquals(8, myDecimal.scale());setScale(scale)
署名
public Decimal setScale(Integer scale)
パラメーター
- scale
- 型: Integer
-
scale の値は、–33 ~ 33 です。scale の値が負の場合は、スケールなしの値に 10 のマイナス scale 乗が乗算されます。たとえば、この操作後、d の値は 4*10^3 になります。
1Decimal d = 4000; 2d = d.setScale(-3);
戻り値
型: Decimal
使用方法
- decimal がクエリの一部として作成される場合、スケールはクエリから返される項目のスケールに基づきます。
- decimal が string から作成される場合、スケールは string の小数点以下の桁の文字数となります。
- 小数値が小数以外の数値から作成される場合は、この数値が最初に文字列に変換されます。その後、小数点以下の桁数を使用してスケールが設定されます。
例
1Decimal myDecimal = 8.987551787;
2Decimal setScaled = myDecimal.setscale(3);
3System.assertEquals(8.988, setScaled);setScale(scale, roundingMode)
署名
public Decimal setScale(Integer scale, System.RoundingMode roundingMode)
パラメーター
- scale
- 型: Integer
-
scale の値は、–33 ~ 33 です。scale の値が負の場合は、スケールなしの値に 10 のマイナス scale 乗が乗算されます。たとえば、この操作後、d の値は 4*10^3 になります。
1Decimal d = 4000; 2d = d.setScale(-3); - roundingMode
- 型: System.RoundingMode
戻り値
型: Decimal
使用方法
- decimal がクエリの一部として作成される場合、スケールはクエリから返される項目のスケールに基づきます。
- decimal が string から作成される場合、スケールは string の小数点以下の桁の文字数となります。
- 小数値が小数以外の数値から作成される場合は、この数値が最初に文字列に変換されます。その後、小数点以下の桁数を使用してスケールが設定されます。
stripTrailingZeros()
署名
public Decimal stripTrailingZeros()
戻り値
型: Decimal
例
1Decimal myDecimal = 1.10000;
2Decimal stripped = myDecimal.stripTrailingZeros();
3System.assertEquals(stripped, 1.1);toPlainString()
署名
public String toPlainString()
戻り値
型: String
例
1Decimal myDecimal = 12345.6789;
2System.assertEquals('12345.6789', myDecimal.toPlainString());