計算式プラグインでの小数計算例です。
概要
JavaScript で、小数計算を行うと2進数で小数計算を行うため誤差が出る場合があります。
計算式プラグインは、bignumber.jsというライブラリを利用して、誤差がでないようにしています。
kitone 標準の計算項目では、API で計算を行っており誤差が出ないようになっているようです。
計算式プラグインの計算例
JavaScript の計算例
編集画面では、誤差が表示されるが、レコード保存時に小数が丸められる。
※kintone 標準の計算式で、数値3 と計算の項目を比較すると、数値が異なるにもかかわらず、数値が同じという〇が表示される。
比較前に小数の丸め処理が行われてると思われます。
kintone 数値と計算の精度
kintone 標準の計算式
計算式プラグインの設定
JavaScript による計算
.js
(function () {
'use strict';
let evs = [
'app.record.create.show', 'app.record.edit.show',
'app.record.create.change.テーブル', 'app.record.edit.change.テーブル',
'app.record.create.change.数値1', 'app.record.edit.change.数値1',
'app.record.create.change.数値2', 'app.record.edit.change.数値2',
];
kintone.events.on(evs, (event) => {
const record = event.record;
record.テーブル.value.forEach((row) => {
try {
row.value.数値3.value = Number(row.value.数値1.value) + Number(row.value.数値2.value);
}
catch (error) {
row.value.数値3.value = '';
}
});
return event;
});
})();