Namespace ImRoundingMode

Constructor

精度を破棄できる数値演算に対する丸め動作を指定するオブジェクト。

各丸めモードは、丸められた結果の返された最下位の桁の計算方法を指定します。
各丸めモードの記述には、2 桁の異なる 10 進数値を、当該の丸めモードで 1 桁の 10 進数値に丸める方法を示す表があります。 表の結果列は、指定された値を持つ ImBigDecimal 数を作成し、適切な設定 (precision が 1、roundingMode が当該の丸めモードに設定) を持つ ImMathContext オブジェクトを形成して、 適切な ImMathContext を使用してこの数値に対し round を呼び出すことで取得できます。 次に、すべての丸めモードの丸め演算の結果を示すサマリーテーブルを示します。

さまざまな丸めモードでの丸め演算のサマリー
特定の丸めモードで入力を 1 桁に丸めた結果
入力される数値 UP DOWN CEILING FLOOR HALF_UP HALF_DOWN HALF_EVEN UNNECESSARY
5.5 6 5 6 5 6 5 6 例外をスロー
2.5 3 2 3 2 3 2 2 例外をスロー
1.6 2 1 2 1 2 2 2 例外をスロー
1.1 2 1 2 1 1 1 1 例外をスロー
1.0 1 1 1 1 1 1 1 1
-1.0 -1 -1 -1 -1 -1 -1 -1 -1
-1.1 -2 -1 -1 -2 -1 -1 -1 例外をスロー
-1.6 -2 -1 -1 -2 -2 -2 -2 例外をスロー
-2.5 -3 -2 -2 -3 -3 -2 -2 例外をスロー
-5.5 -6 -5 -5 -6 -6 -5 -6 例外をスロー

サンプルコード
<!-- ImRoundingMode の使用には下記スクリプト2ファイルを記載通りの順番に読み込んでください。 -->
<script src="ui/libs/bigdecimal-js/BigDecimal-all-last.min.js"></script>
<script src="ui/js/math/im_decimal.min.js"></script>
  :
  :
<script type="text/javascript">
  var value1 = new ImBigDecimal("1.23456");
  var value2 = value1.round(new ImMathContext(4, ImRoundingMode.DOWN));
  var value3 = value1.setScale(3, ImRoundingMode.UP);
  console.log(value1); // 1.23456
  console.log(value2); // 1.234
  console.log(value3); // 1.235
</script>

Static members

Static PropertiesDefined By

正の無限大に近づくように丸めるモードです。
結果が正の場合は ImRoundingMode.UP のように動作し、負の場合は ImRoundingMode.DOWN のように動作します。この丸めモードは、計算された値を減らしません。
0 に近づくように丸めるモードです。
破棄される小数部に先行する桁を増分しません (つまり切り捨て)。この丸めモードは、計算された値の絶対値を増やしません。
負の無限大に近づくように丸めるモードです。
結果が正の場合は ImRoundingMode.DOWN のように動作し、負の場合は ImRoundingMode.UP のように動作します。この丸めモードは、計算された値を増やしません。
「もっとも近い数字」に丸めるモードです(両隣りの数字が等距離の場合は切り捨てます)。
破棄される小数部が 0.5 を超える場合は ImRoundingMode.UP のように、それ以外の場合は ImRoundingMode.DOWN のように動作します。
「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は偶数側に丸めます)。
破棄する小数部の左側の桁が奇数の場合は ImRoundingMode.HALF_UP のように動作し、偶数の場合は ImRoundingMode.HALF_DOWN のように動作します。この丸めモードは、連続する計算で繰返し適用される場合に累積エラーを統計的に最小限にします。 これは「銀行方式の丸め」としても知られ、主に米国で使用されます。この丸めモードは、Java の float および double 算術演算で使用される丸め方針と同様です。
「もっとも近い数字」に丸めるモードです(ただし、両隣りの数字が等距離の場合は切り上げます)。
破棄される小数部が 0.5 以上の場合は ImRoundingMode.UP のように、それ以外の場合は ImRoundingMode.DOWN のように動作します。
要求される演算の結果が正確であり、丸めが必要でないことを表す丸めモードです。
この丸めモードが結果が正確でない演算で指定される場合は、例外エラーが発生します。
0 から離れるように丸めるモードです。
破棄される 0 以外の小数部に先行する桁を常に増やします。この丸めモードは、計算された値の絶対値を減らしません。