ApexでDecimal型数値の整数変換する方法についてです。
整数変換はround関数で実行できます。
Decimal d = null; // round d = 1; System.debug('d = 1 : ' + d.round()); d = 1.1; System.debug('d = 1.1 : ' + d.round()); d = 1.4; System.debug('d = 1.4 : ' + d.round()); d = 1.5; System.debug('d = 1.5 : ' + d.round()); d = 1.6; System.debug('d = 1.6 : ' + d.round()); d = 1.9; System.debug('d = 1.9 : ' + d.round());
上記の場合はこうなります。
round関数にはSystem.RoundingMode.UPやSystem.RoundingMode.DOWNなどのオプションがあります。
System.RoundingMode.UP
Decimal d = null; // round d = 1; System.debug('d = 1 : ' + d.round(System.RoundingMode.UP)); d = 1.1; System.debug('d = 1.1 : ' + d.round(System.RoundingMode.UP)); d = 1.4; System.debug('d = 1.4 : ' + d.round(System.RoundingMode.UP)); d = 1.5; System.debug('d = 1.5 : ' + d.round(System.RoundingMode.UP)); d = 1.6; System.debug('d = 1.6 : ' + d.round(System.RoundingMode.UP)); d = 1.9; System.debug('d = 1.9 : ' + d.round(System.RoundingMode.UP));
UPの場合はこうなります。
System.RoundingMode.DOWN
Decimal d = null; // round d = 1; System.debug('d = 1 : ' + d.round(System.RoundingMode.DOWN)); d = 1.1; System.debug('d = 1.1 : ' + d.round(System.RoundingMode.DOWN)); d = 1.4; System.debug('d = 1.4 : ' + d.round(System.RoundingMode.DOWN)); d = 1.5; System.debug('d = 1.5 : ' + d.round(System.RoundingMode.DOWN)); d = 1.6; System.debug('d = 1.6 : ' + d.round(System.RoundingMode.DOWN)); d = 1.9; System.debug('d = 1.9 : ' + d.round(System.RoundingMode.DOWN));
DOWNの場合はこうなります。
他にもいくつかオプションが用意されているので開発者ガイドで確認するのがいいと思います。