小数点第3位を切り捨てする

小数点第3位を切り捨てするサンプルをご紹介します。

サンプルについて

本サンプルのソースコードや、カスタマイズ方法等の技術的なお問合せは承っておりません。

利用するイベント

申請入力画面イベント(パーツ値変更イベント)

サンプルフォーム

サンプルで利用するフォームには、以下のパーツを配置しています。

パーツID

パーツタイプ

補足

fidRadio

ラジオボタン

fidDecimal1

テキスト(一行)パーツ

数値型

fidDecimal2

テキスト(一行)パーツ

数値型

fidCalculate

テキスト(一行)パーツ

数値型


カスタマイズコード
カスタマイズコード
Copied!
(function () {
'use strict';

const changeEventNames = [
'request.input.fidRadio.change',
'request.input.fidDecimal1.change',
'request.input.fidDecimal2.change'
];

collaboflow.events.on(changeEventNames, function (changeEvent) {
const fidRadio = changeEvent.parts['fidRadio'].value;
let fidDecimal1 = changeEvent.parts['fidDecimal1'].value;
let fidDecimal2 = changeEvent.parts['fidDecimal2'].value;

if (fidDecimal1 === '' || fidDecimal2 === '') {
return;
}

fidDecimal1 = Number(changeEvent.parts['fidDecimal1'].value);
fidDecimal2 = Number(changeEvent.parts['fidDecimal2'].value);

let calculatedValue = 0;

switch (fidRadio) {
case '足し算':
calculatedValue = fidDecimal1 + fidDecimal2;
break;
case '引き算':
calculatedValue = fidDecimal1 - fidDecimal2;
break;
case '掛け算':
calculatedValue = fidDecimal1 * fidDecimal2;
break;
case '割り算':
if (fidDecimal2 === 0) {
changeEvent.parts['fidCalculate'].value = 0;
return;
}

calculatedValue = fidDecimal1 / fidDecimal2;
break;
default:
window.alert('計算条件を選択してください');
break;
}

const decimalPoint = 2;
let number = 1;

// 計算結果が負の数だった場合の切り捨て処理
if (calculatedValue < 0) {
number = -1;
calculatedValue = Math.abs(calculatedValue);
}

// 小数点第3位を切り捨てする
const squareValue = Math.pow(10, decimalPoint);
const truncateDecimalPoint = Math.floor(calculatedValue * squareValue) / squareValue;

const result = truncateDecimalPoint * number;
changeEvent.parts['fidCalculate'].value = result;
})
})();

動作の確認手順

1. サンプルのカスタマイズコードをjsファイルに保存します。
2. アプリ設定 > フォーム設定から新規に通常フォームを作成します。
3. サンプルフォームに、先で記載されている必要な項目を配置します。
4. サンプルフォームを再度表示し、カスタマイズのタブを表示します。
5. 保存したファイルをアップロードします。
6. アプリ設定 > 経路設定から新規に経路を作成します。
7. 新規文書から作成した経路名をクリックします。
8. 申請画面が表示されます。

動作イメージ