デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - 桁数調整をするには? 四捨五入・切り上げ・切り捨て ~Round Double~

f:id:makkynm:20210228112042p:plain

 

はじめに

 こんにちは、自動化大好きまっきーです。今回は小数点の取り扱いができる、Round Double というNodeを解説したいと思います。

 

 

 今回のテーマ ~Round Double~

Round Doubleはその名の通り、小数点を取り扱うことができる数値型(Double型)のコラムに対して、桁を丸める(Round)ことを可能にするNodeです。

 データを処理していると、小数点以下を切り捨てたくなったり、四捨五入したくなったりすると思います。今回は小数点の扱いについてRound Doubleと言うNodeを通して徹底的に解説したいと思います。

f:id:makkynm:20210228121218p:plain

 今回のテーマ ~Round Double~

workflowは下記からダウンロードできます。

hub.knime.com

 

覚えてほしいこと

四捨五入のオプション一覧

  • UP: 0から遠い方に数値を動かす。元の値がプラスの時はCEILINGと同じ動きをする。
  • DOWN: 0の方に数値を動かす
  • CEILING: 切り上げ
  • FLOOR: 切り捨て
  • HALF_UP: 四捨五入。5の時は、0から遠い方に動かす。
  • HALF_DOWN: 四捨五入。5の時は、0から近い方に動かす。
  • HALF_EVEN: 四捨五入。一つ上の桁が奇数の時はHALF_UPとして、偶数の時はHALF_DOWNとして機能する。

 

やりたいこと 

小数第一位まである数値に対して、小数第一位の値を四捨五入・切り上げ・切り下げをして、1桁にしたいと思います。 

OptionごとのOutputがどう定義されているためにこの数値になるのかを理解するのが目標です。

f:id:makkynm:20210228121454p:plain

やりたいこと - 小数点の桁数調整

 

Round Doubleの使い方

数値の桁を取り扱うNodeです。

小数点に関わる計算は、Math Formulaや、String Manipulationでも扱えますが、小数点の位置や表現の仕方についてより詳細に設定をしたい場合はRound Doubleが有効です。

 

Workflow

各 Optionに対して1コラムずつ追加していきます。

f:id:makkynm:20210228121855p:plain

Workflow - Round Double

Confirm 

7つRound Doubleを作ったので、合計7コラム追加されました。

f:id:makkynm:20210228122103p:plain

Confirm - Round Double

 

Configure - Round Double

さて、Optionの解説です。重要なのは、Output format, Precision mode, Rounding modeのオプションです。

f:id:makkynm:20210228124858p:plain

Configure - Round Double
Step1 - Column Selection 取り扱うコラムの指定

いつもの画面ですね。今回取り扱いたいコラムをここで指定します。

繰り返しになりますが、Enforce inclusionのオプションは、そのコラムを固定すると言うことで、もし追加のコラムが今後入ってきた場合は、Enforceされていない方に自動的に振り分けられます。

 

Step2 - Column Settings 出力フォーマットの設定

ここでは大きく分けて2つ指定があります。

Append as new columns

チェックを入れると、元コラムが置換されることなく、処理された後の結果が新しいコラムとして追加されます。

 

Output format - 小数点の表示設定

ここは少し説明が必要かと思います。百聞は一見に如かずだと思うので、下記のOutputを見ていただければ意味がわかると思います。

f:id:makkynm:20210228125552p:plain

Step2 - Output format

出力フォーマットには、4つの種類があります。

  • Double - 通常のDouble型。ただし、0.00000035239のような数字は、Outputの画面では勝手に丸められた状態で表示される。
  • Standard String - 小数点をEを使った形式で表示する
  • Plain String - なんの加工もない形でそのまま表示する
  • Engineering String- 小数点をEを使った形式で表示する

値自体は変わっていませんが、表示のフォーマットを調整するために使用するオプションですね。

 

Step3 - Rounding settings 桁丸めの設定

さて、一番重要な部分です。ここでは3つ項目があります。どれもとても大事なので1つ1つ解説したいと思います。

Step3.1 - Precision 処理位置の番号指定

これは特に迷うことないですね。処理したい位置(小数点の場合は小数第何位か)を指定します。Step3.2のModeによってこの数字の意味は変わってきます。

Step3.2 - Precision mode 処理位置の指定

ここでは2つオプションがあります。まずは例をお見せします。これは、Precisionを3で、HALF_UPのオプションを指定してOutputした結果です。

f:id:makkynm:20210228130534p:plain

Step3.2 - Precision mode
  • Siginificant fingures - 臨機応変に処理位置を変更する方法。通常の小数であれば、小数第何位かの部分で桁丸めを実行します。整数の場合、Precisionで指定された数値を桁数として、何桁目で処理すると言うような臨機応変な対応をします。下の値がかなり小さい値だった場合は、0でない位置からPrecisionで指定された数だけずらした位置で処理を行います。
  • Decimal places - 王道の方法。Precisionで指定された位置を小数第何位かという位置として処理し、たとえ、整数だとしても愚直に指定された位置で桁丸めを行います。

 

Step3.3 - Rounding mode 桁丸めの方法の指定

さて、ここが本題です。先ほど、Step3.1とStep3.2で指定した位置に対して、桁丸めを行いますが、丸め方はなんと7種類もあります。

学校教育では四捨五入・切り上げ・切り捨てくらいしか使わないですよね、、

下記が全オプションの内容になっています。

  • UP: 0から遠い方に数値を動かす。元の値がプラスの時はCEILINGと同じ動きをする。
  • DOWN: 0の方に数値を動かす
  • CEILING: 切り上げ
  • FLOOR: 切り捨て
  • HALF_UP: 四捨五入。5の時は、0から遠い方に動かす。
  • HALF_DOWN: 四捨五入。5の時は、0から近い方に動かす。
  • HALF_EVEN: 四捨五入。一つ上の桁が奇数の時はHALF_UPとして、偶数の時はHALF_DOWNとして機能する。

正しくオプションの意味を習得できたら、正しく処理できますね。

 

  

おわりに

お疲れ様でした。正直オプションが細かいと文字が多くなって読みにくいですかね。正しくオプションの内容を知ることができれば正しくWorkflowを組めるので、エラーの少ないWorkflowを作ることができるようになります。

覚える必要はないと思うので、軽く見てこんなことできるんだなー程度に思っておくといいと思います!

こんなの解説してほしいと言うのがあったらぜひお問い合わせいただけたらなーと思います〜、ではまた!

 

 

 

余談 

さて、今回も楽天モバイルのお話をしましょう。オススメしている楽天モバイルですが、デメリットもあります。地下で電波が入りにくいもしくは圏外になることです。

今ひとまずエリアを拡大することに集中していると思うので仕方がないかと思いますが、地下で買い物してちょっと調べ物とかするときは少し不便ですね。

データ量を気にせず使えるのは非常にいいのでこれだけの理由で解約することはないですけどね。 また定期的に感想を入れていきたいと思います〜

申し込みしたい方、リンク貼っておきますのでぜひこちらからどうぞー、ではまた!

 

楽天モバイル

 

 

 

参考リンク