質問
HULFT Integrate の演算ロジック(掛け算・割り算)を使用した際、演算結果の小数点以下が0で終わる場合でも0が出力されます。これは仕様ですか?また、末尾の0を除去する方法はありますか?
回答
四則演算ロジック(掛け算・割り算)は内部で BigDecimal 型を使用して処理を行っており、演算結果の小数点以下が0であっても精度(有効桁数)に基づいた桁数がそのまま出力されます。これは仕様上の動作です。
各ロジックの精度の仕様は以下のとおりです。
- 掛け算ロジック:入力ハンドラの精度の合計値を使用(例:189000.05 × 1.05 = 198450.0525)
- 割り算ロジック:1番目の入力ハンドラの精度を使用(例:189000.5 ÷ 0.05 = 3780010.0)
小数点以下の桁数を制御するには、演算ロジックの後段に [数値フォーマッティング] ロジック([文字列] タブ > 数値ロジック)を追加します。手順は以下のとおりです。
1. 掛け算・割り算ロジックで演算を行う
2. 演算結果を [数値フォーマッティング] ロジックに接続する
3. [数値フォーマッティング] ロジックの [パターン] を目的の桁数に合わせて設定する
4. フォーマット後の値を DB へ書き込む
補足
[数値フォーマッティング] ロジックの出力は文字列型となるため、DB 側のカラム型との整合性を確認してください。
参考リンク:
- [【公式マニュアル】[Mapper]Mapperロジック](https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Mapper/mpp_logic_and_schema_spec.htm)
- [【公式マニュアル】[Mapper]Mapperロジックガイド](https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Mapper/mpp_logic_list.htm)
コメント
0件のコメント
記事コメントは受け付けていません。