新規投稿
フォローする

kintoneアプリでの四捨五入方法

計算結果を強制的に四捨五入をさせたいと思っています。

現在は「文字列」フィールドで

「自動計算をする」に設定をして、

【keisan-9】というフィールドコードに

YEN(計算8*10.18,0)を施しています。

 

【keisan-8】という【計算】フィールドコードの計算結果に、

1,816という数字が入っており、

【keisan-9】に10.18を掛け算した計算結果を表示させたいのですが、

電卓計算ですと、1816×10.18=18486.88となりますが、

YEN関数の結果がなぜか、¥18,494となってしまいます。

 

この結果を18,497という結果にしたいです。

kintoneのJavaScriptはどう記述すると良いのでしょうか?

差し支えなければご教示頂けたらと思います。

 

下記の記述だけでは不完全かと思います。

(function ()
{ "use strict";


// 四捨五入
var keisan-9 = Math.round(keisan-8 ) ;

}

 
0

9件のコメント

Avatar
HANSA

C-POWER さん

実装したい機能は自動計算でできると思います。

おそらく、フィールドコードか、何か設定が間違っているようです。

【keisan-9】というフィールドコードに
YEN(計算8*10.18,0)を施しています。

この部分ですが、

YEN(keisan-8 * 10.18, 0)

にする必要があると思いますが、設定できていますか?

0
Avatar
C-POWER管理者

”YEN(計算8*10.18,0)を施しています。”

 

申し訳ありません。

計算8はkeisan-8です。

YEN(keisan-8 * 10.18, 0)の設定にしてあります。

 

電卓計算ですと、1816×10.18=18486.88となりますが、

YEN関数の結果がなぜか、¥18,494となってしまいます。

18,487の計算結果にしたいです。

0
Avatar
HANSA

C-POWER さん

手元で試しましたが、正常に計算できるようです。

 

 

 

標準機能で賄えることなので、カスタマイズはしないことをお勧めします。

それでもカスタマイズで実現したい場合は、まずはチュートリアルを読んでからカスタマイズすることをお勧めします。
https://developer.cybozu.io/hc/ja/articles/115002336526

 

0
Avatar
Shotaro Matsuda

C-POWERさん、こんにちは。

プロジェクト・アスノートの松田です。

kintoneの小数点桁数の扱いにはちょっとクセがあります。

アプリで扱う数値の桁数を制御する方法は以下の2つがあります。

  1. 数値/計算フィールドの設定:小数点以下の表示桁数
  2. アプリ設定/高度な設定:小数部の桁数 及び丸め方

今回のケースでは、【keisan-8】の計算フィールドの表示桁数を設定していませんか?

あくまでこれは表示上の桁数を変えているだけで、内部のデータは2の高度な設定に設定されている桁数を保持しています。

この見えていない小数部が、計算結果に影響している可能性が高いと思います。

参考になりますでしょうか。

 

0
Avatar
C-POWER管理者

よくよく考えると、計算の全容を示していなかったので、コメントいただいた皆様にご迷惑をかけてしまいました。

スクリーンショットで各箇所に計算式を記載してみました。当初、小数点以下の表示桁数はゼロにしましたが、

空白にして実際の数値を表示するようにしました。

 

罫線より上は、各項目に該当すれば1、該当しなければ0 と手動でできるようにしてあります。

罫線より下は、上記項目を踏まえた上で、計算するように設定しました。

 

一番最後の給付費がなぜ思うようにならないか考えましたが、

【特地加算単位】という箇所が、まずネックで、ここを四捨五入して、かつ桁数をゼロにしないといけないのですが、

個々の処理に苦戦します。

そして、【合計単位】【給付費】は切り下げで、かつ桁数をゼロにしないといけないのですが、

キントーンでは、小数点以下の表示桁数をゼロにする箇所はありますが、

見た目がゼロになるだけで実際は小数点以下の処理が行われていない状況なので、

思うようにならないと考えました。

エクセルのように簡単に関数で処理ができればよいのですが、

こういったケースの場合、JAVASCRIPTで処理をするしかないでしょうか?

0
Avatar
w.y

画面表示で少数桁数を使用しないのであれば、

「小数部の桁数」を0

「丸め方」を切り捨て

にして、小数点以下を含むの計算は100倍で計算した後に、100割って小数点以下を削除すればよいのでは?

 

k3=((k1+k2)*15+50(十の位四捨五入)/100

給付費=k8*1018/100

0
Avatar
C-POWER管理者

”画面表示で少数桁数を使用しないのであれば、

「小数部の桁数」を0

「丸め方」を切り捨て

にして、小数点以下を含むの計算は100倍で計算した後に、100割って小数点以下を削除すればよいのでは?”

 

こういった方法は思いつきませんでした。有難うございます。

ただ、給付費の結果が18,488となりました。ここは18,487になるようにしたいです。

 

k3の部分は、表示上は切り捨てされましたが、実際は小数第一位の数値があるので、

198.2の結果が反映され、よってk7(合計単位)の計算結果は、1816.2となり、

k8*1018/100→1816.2×1018/100=18,488.916(916切り捨て)

→18,488となります。

k3、k8、k9も整数として扱いたいです。

 

0
Avatar
w.y

言葉が足りなかったようですね、すみません。

Shotaro Matsudaさんの文章を引用しますと、

>アプリで扱う数値の桁数を制御する方法は以下の2つがあります。

  1. 数値/計算フィールドの設定:小数点以下の表示桁数
  2. アプリ設定/高度な設定:小数部の桁数 及び丸め方

の2の部分で

「小数部の桁数」を0

「丸め方」を切り捨て

を設定したらどうかと言うお話です。

各項目の小数点以下の表示桁数の指定ではありません。「アプリ設定/高度な設定」です。

 

こうすることで、小数点以下を保持できなくなりますが、整数で扱いたいということなので問題ないかと思います。

上記設定をすることで、1816.2は1816となると思いますよ。

0
Avatar
C-POWER管理者

有難うございます。

 

「アプリ設定/高度な設定:小数部の桁数 及び丸め方」

の2の部分で

「小数部の桁数」を0

「丸め方」を切り捨て

 

高度な設定」で処理を行うことはわかりましたが

少数部の桁数を「0」 にしていませんでした。

 

これで様子をみてみます。

C-POWER管理者により編集されました
1
サインインしてコメントを残してください。