Namespace ImDecimalFormatter Singleton

Constructor

ImDecimalFormatter Singleton Static
数値文字列の整形および解析オブジェクト。

数値文字列の整形および解析を行います。
処理を行うにあたって、このAPIではクライアントサイドからサーバサイドに対して通信を行います。
スクリプト開発向けAPIのDecimalFormatterオブジェクトについてもあわせてご参照ください。
バージョン8.0.19より変換処理をクライアントサイドのみで行う機能が追加されました。
以下の条件の場合にクライアントサイドで変換処理を行います。
  1. 設定ファイル 数値形式マスタの csjs-path 属性に変換処理を行うパスが設定されていること
  2. スクリプト開発の場合スクリプト開発向けclientDecimalFormatScriptタグを、JavaEE開発の場合JavaEE開発向けclientDecimalFormatScriptタグを利用している画面であること
clientDecimalFormatScriptタグを利用していても、設定によってはサーバサイドで処理をする可能性があることを考慮して実装してください。
サーバサイドで処理した場合とクライアントサイドで処理をした場合で、コールバック関数の引数が異なります。どちらで動作してもエラーにならないように実装することを推奨します。

注意事項
  • ImDecimalFormatterを使用する場合は下記のようにImBigDecimalとImDecimalFormatterを読み込んでください。
    さらに、変換処理をクライアントサイドのみで行いたい場合は下記のようにim_decimal_formatter.min.js以降にclientDecimalFormatScriptタグを読み込んでください。
  • <script src="ui/libs/bigdecimal-js/BigDecimal-all-last.min.js"></script>
    <script src="ui/js/math/im_decimal.min.js"></script>
    <script src="im_i18n/number/format/im_decimal_formatter.min.js"></script>
    <!-- クライアントサイドで変換処理を行いたい場合に記述してください。本サンプルはスクリプト開発向けです -->
    <imart type="clientDecimalFormatScript" />
    
  • clientDecimalFormatScriptタグを利用していない場合、設定ファイル数値形式マスタに csjs-path 属性を指定していても変換処理のたびにサーバへ通信を行います。
    クライアントサイドで変換処理を行いたい場合は必ずclientDecimalFormatScriptタグを利用してください。
  • csjs-path属性に標準で指定されているパスの変換処理は、設定ファイル数値形式マスタのparameterの有無によってクライアントサイドで処理を行わずサーバへ通信して処理を行います。
    以下のどれかに当てはまる場合、クライアントサイドで変換処理を行いません。
    • 「grouping-separator」が設定されていない
    • 「decimal-separator」が設定されていない
    • 「locale」が設定されている
    • 「pattern」が設定されている
以下は、数値のフォーマットを行うサンプルコードです。

サンプルコード
<script src="ui/libs/bigdecimal-js/BigDecimal-all-last.min.js"></script>
<script src="ui/js/math/im_decimal.min.js"></script>
<script src="im_i18n/number/format/im_decimal_formatter.min.js"></script>
<!-- クライアントサイドで変換処理を行いたい場合に記述してください。本サンプルはスクリプト開発向けです -->
<imart type="clientDecimalFormatScript" /> 
  :
  :
<script type="text/javascript">
  // フォーマットIDが"sample"であるフォーマットを利用します。
  var formatter = ImDecimalFormatter.getInstance("sample");
  // 数値の小数部分の部分の最大桁数を2桁に変更します。
  formatter.setMaximumFractionDigits(2);

  // 2つの数値をフォーマットし、指定した関数で結果を受け取ります。
  formatter.format([1234, -56.789], callbackFunc);

  // 結果を受け取るCallback関数です。
  function callbackFunc(data, textStatus, jqXHR) {
    var array = data.data;
    // フォーマット後の文字列は以下のように格納されています。
    // array[0] = "1,234", array[1] = "-56.79"
  }
</script>

Instance members

Instance MethodsDefined By

format ( Number/ImBigDecimal/Array numbers, Callback関数 done, [Callback関数 beforeSend], [Callback関数 always], [Callback関数 fail] ) ImDecimalFormatter
数値(または数値の配列)をフォーマットして文字列(または文字列の配列)を作成します。

このメソッドではフォーマット対象のデータがサーバへ送信され、フォーマット処理はサーバ側で実行されます。
サーバから返却されたフォーマット後の値は、引数 done で指定する Callback関数に対して、引数 data として以下のオブジェクト構造にて渡されます。

引数 フィールド名 説明
data error Boolean エラーが発生した場合、true
errorMessage String エラーが発生した場合、エラーメッセージ
data stringまたはArray フォーマット後の文字列(または文字列の配列)

単一の数値を与えてフォーマットに失敗した場合、返却されるフォーマット後の文字列は null となります。
配列内のある要素でフォーマットに失敗した場合は、返却されるフォーマット後の配列内の該当要素が null となります。
フォーマットに失敗しただけではエラーとしては扱いません。

このオブジェクトの生成時にフォーマットIDで指定していたフォーマット情報が、サーバサイドに存在しない場合はエラーとなります。
バージョン8.0.19より、クライアントサイドのみでフォーマットを行うことができるようになりました。
クライアントサイドで処理する場合、各Callback関数の引数がサーバサイドでフォーマットした場合と異なります。

Parameters
numbers : Number/ImBigDecimal/Array
フォーマット対象の数値(Number/ImBigDecimal)、または数値を要素に持つ配列(Array)
done : Callback関数
フォーマット後の値を受け取るCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. dataオブジェクト
  2. textStatus
  3. jqXHR
クライアントサイドで処理をした場合の引数
  1. dataオブジェクト
beforeSend : Callback関数
OptionalDefault: $.noop
データ送信の前に呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. jqXHR
  2. settings
クライアントサイドで処理をした場合の引数
  1. フォーマット対象の数値(Number/ImBigDecimal)、または数値を要素に持つ配列(Array)
  2. doneに指定したCallback関数
  3. このCallback関数自身
always : Callback関数
OptionalDefault: $.noop
データ送信が完了したときに呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. data|jqXHR
  2. textStatus
  3. jqXHR|errorThrown
クライアントサイドで処理をした場合の引数
  1. dataオブジェクト
fail : Callback関数
OptionalDefault: $.noop
データ送信が失敗したときに呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. jqXHR
  2. textStatus
  3. errorThrown
クライアントサイドで処理をした場合の引数
    引数なし
  <script src="ui/libs/bigdecimal-js/BigDecimal-all-last.min.js"></script>
  <script src="ui/js/math/im_decimal.min.js"></script>
  <script src="im_i18n/number/format/im_decimal_formatter.min.js"></script>
  <!-- クライアントサイドで変換処理を行いたい場合に記述してください。本サンプルはスクリプト開発向けです -->
  <imart type="clientDecimalFormatScript" />
  <script type="text/javascript">
    var formatter = ImDecimalFormatter.getAccountInstance();
    // 数値の小数部分の部分の最大桁数を2桁に変更します。
    formatter.setMaximumFractionDigits(2);
    // 2つの数値をフォーマットし、指定した関数で結果を受け取ります。
    formatter.format([1234, -56.789], callbackFunc);

    // 結果を受け取るCallback関数です。
    function callbackFunc(data, textStatus, jqXHR) {
      var array = data.data;
      // フォーマット後の文字列は以下のように格納されています。
      // array[0] = "1,234", array[1] = "-56.79"
    }
  </script>
parseToBigDecimal ( String/Array texts, Callback関数 done, [Callback関数 beforeSend], [Callback関数 always], [Callback関数 fail] ) ImDecimalFormatter
文字列(または文字列の配列)からテキストを解析して数値(または数値の配列)を生成します。

このメソッドでは解析対象のデータがサーバへ送信され、解析処理はサーバ側で実行されます。
サーバから返却された解析後の値は、引数 done で指定する Callback関数に対して、引数 data として以下のオブジェクト構造にて渡されます。

引数 フィールド名 説明
data error Boolean エラーが発生した場合、true
errorMessage String エラーが発生した場合、エラーメッセージ
data ImBigDecimalまたはArray 解析後の数値(または数値の配列)

無限大やNaNを表す文字列を与えた場合は文字列の解析に失敗します。

単一の文字列を与えて解析に失敗した場合、返却される解析後の数値は null となります。
配列内のある要素で解析に失敗した場合は、返却される解析後の配列内の該当要素が null となります。
解析に失敗しただけではエラーとしては扱いません。

このオブジェクトの生成時にフォーマットIDで指定していたフォーマット情報が、サーバサイドに存在しない場合はエラーとなります。
バージョン8.0.19より、クライアントサイドのみでパースを行うことができるようになりました。
クライアントサイドで処理する場合、各Callback関数の引数がサーバサイドでパースした場合と異なります。

結果の数値はImBigDecimal型として表現されます。
Parameters
texts : String/Array
解析対象の文字列(String)、または文字列を要素に持つ配列(Array)
done : Callback関数
解析後の値を受け取るCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. dataオブジェクト
  2. textStatus
  3. jqXHR
クライアントサイドで処理をした場合の引数
  1. dataオブジェクト
beforeSend : Callback関数
OptionalDefault: $.noop
データ送信の前に呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. jqXHR
  2. settings
クライアントサイドで処理をした場合の引数
  1. dataオブジェクト
always : Callback関数
OptionalDefault: $.noop
データ送信が完了したときに呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. data|jqXHR
  2. textStatus
  3. jqXHR|errorThrown
クライアントサイドで処理をした場合の引数
  1. dataオブジェクト
fail : Callback関数
OptionalDefault: $.noop
データ送信が失敗したときに呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. dataオブジェクト
  2. textStatus
  3. jqXHR
クライアントサイドで処理をした場合の引数
  1. 引数なし
  <script src="ui/libs/bigdecimal-js/BigDecimal-all-last.min.js"></script>
  <script src="ui/js/math/im_decimal.min.js"></script>
  <script src="im_i18n/number/format/im_decimal_formatter.min.js"></script>
  <!-- クライアントサイドで変換処理を行いたい場合に記述してください。本サンプルはスクリプト開発向けです -->
  <imart type="clientDecimalFormatScript" />
  <script type="text/javascript">
    var formatter = ImDecimalFormatter.getAccountInstance();

    // 2つの文字列をパースし、指定した関数で結果を受け取ります。
    formatter.parseToBigDecimal(['1,234', '-567,891.789'], callbackFunc);

    // 結果を受け取るCallback関数です。
    function callbackFunc(data, textStatus, jqXHR) {
      var array = data.data;
      // パース後のimBigDecimalは以下のように格納されています。
      // array[0].toPlainString() = 1234, array[1].toPlainString() = -567891.789
    }
  </script>
parseToNumber ( String/Array texts, Callback関数 done, [Callback関数 beforeSend], [Callback関数 always], [Callback関数 fail] ) ImDecimalFormatter
文字列(または文字列の配列)からテキストを解析して数値(または数値の配列)を生成します。

このメソッドでは解析対象のデータがサーバへ送信され、解析処理はサーバ側で実行されます。
サーバから返却された解析後の値は、引数 done で指定する Callback関数に対して、引数 data として以下のオブジェクト構造にて渡されます。

引数 フィールド名 説明
data error Boolean エラーが発生した場合、true
errorMessage String エラーが発生した場合、エラーメッセージ
data numberまたはArray 解析後の数値(または数値の配列)

無限大やNaNを表す文字列を与えた場合は文字列の解析に失敗します。

単一の文字列を与えて解析に失敗した場合、返却される解析後の数値は null となります。
配列内のある要素で解析に失敗した場合は、返却される解析後の配列内の該当要素が null となります。
解析に失敗しただけではエラーとしては扱いません。

このオブジェクトの生成時にフォーマットIDで指定していたフォーマット情報が、サーバサイドに存在しない場合はエラーとなります。

バージョン8.0.19より、クライアントサイドのみでパースを行うことができるようになりました。
クライアントサイドで処理する場合、各Callback関数の引数がサーバサイドでパースした場合と異なります。
結果の数値はNumber型として表現されます。
Parameters
texts : String/Array
解析対象の文字列(String)、または文字列を要素に持つ配列(Array)
done : Callback関数
解析後の値を受け取るCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. dataオブジェクト
  2. textStatus
  3. jqXHR
クライアントサイドで処理をした場合の引数
  1. dataオブジェクト
beforeSend : Callback関数
OptionalDefault: $.noop
データ送信の前に呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. jqXHR
  2. settings
クライアントサイドで処理をした場合の引数
  1. dataオブジェクト
always : Callback関数
OptionalDefault: $.noop
データ送信が完了したときに呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. data|jqXHR
  2. textStatus
  3. jqXHR|errorThrown
クライアントサイドで処理をした場合の引数
  1. dataオブジェクト
fail : Callback関数
OptionalDefault: $.noop
データ送信が失敗したときに呼ばれるCallback関数。処理をクライアントサイドで行うかサーバサイドで行うかにより引数が異なります。
サーバサイドで処理をした場合の引数
  1. dataオブジェクト
  2. textStatus
  3. jqXHR
クライアントサイドで処理をした場合の引数
  1. 引数なし/li>
  <script src="ui/libs/bigdecimal-js/BigDecimal-all-last.min.js"></script>
  <script src="ui/js/math/im_decimal.min.js"></script>
  <script src="im_i18n/number/format/im_decimal_formatter.min.js"></script>
  <!-- クライアントサイドで変換処理を行いたい場合に記述してください。本サンプルはスクリプト開発向けです -->
  <imart type="clientDecimalFormatScript" />
  <script type="text/javascript">
    var formatter = ImDecimalFormatter.getAccountInstance();

    // 2つの文字列をパースし、指定した関数で結果を受け取ります。
    formatter.parseToNumber(['1,234', '-567,891.789'], callbackFunc);

    // 結果を受け取るCallback関数です。
    function callbackFunc(data, textStatus, jqXHR) {
      var array = data.data;
      // パース後の数値は以下のように格納されています。
      // array[0] = 1234, array[1] = -567891.789
    }
  </script>
setGroupingUsed ( Boolean newValue ) ImDecimalFormatter
この ImDecimalFormatter でグループ化を使用するかどうかを設定します。
Parameters
newValue : Boolean
グループ化を使用する場合はtrue、そうでない場合は false
数値の小数部分の最大桁数を設定します。
Parameters
newValue : Number
小数部分の最大表示桁数
数値の整数部分の最大桁数を設定します。
Parameters
newValue : Number
整数部分の最大桁数
数値の小数部分の最小桁数を設定します。
Parameters
newValue : Number
小数部分の最小桁数
数値の整数部分の最小桁数を設定します。
Parameters
newValue : Number
整数部分の最小桁数

Static members

Static MethodsDefined By

現在のアカウントコンテキストに紐付くフォーマット情報を元に、このオブジェクトを生成します。
Returns
ImDecimalFormatter
アカウントコンテキストに紐付くフォーマットを利用したオブジェクト
getInstance ( [String formatId] ) : ImDecimalFormatter Static ImDecimalFormatter
フォーマットIDで指定されるフォーマット情報を元に、このオブジェクトを生成します。
フォーマットIDの指定を省略した場合、getAccountInstance と同等の動作をします。
Parameters
formatId : String
Optional
フォーマットID
Returns
ImDecimalFormatter
フォーマットIDで指定されるフォーマットを利用したオブジェクト