LoginSignup
1
0

PlayMakerで小数の桁数を指定して切り下げ・切り上げ・四捨五入がしたい!

Last updated at Posted at 2024-04-23

小数の切り捨て・切り上げ・四捨五入に関して、同僚から質問があったのでググってみたんですが、情報が全然見つからないので自分で記事を書いてみました!

PlayMakerで小数の切り下げ・切り上げ・四捨五入がしたい!

いったん桁を指定するのは忘れて、小数を 切り下げ切り上げ で整数に変換できないか調べます。

ずばり、 Convert Float To Int を使えばできます!

これは FloatInt に変換するアクションですが、その際に Rounding切り下げ 切り上げ 等を指定できます。

image.png

Rounding の意味は以下の通りです。

Rounding 意味
Round Down 切り下げ
Round Up 切り上げ
Nearest 四捨五入

ちなみに、 Round Down は小数 切り捨て ではなく 切り下げ なので、ご注意ください。
切り捨てと切り下げはマイナスの値のときに違いがでます。

入力値 切り捨て 切り下げ
12.3 12 12
-12.3 -12 -13

小数の桁数を指定して切り下げ・切り上げ・四捨五入がしたい!

いよいよ桁を指定する方法を紹介します!

Convert Float To Int アクションを応用すれば、小数の桁数を指定できます!

たとえば、小数第三位まで残し、第四位以降は切り下げしたい場合、以下の図のようにアクションを組み立てればよいです。

image.png

12.34567 という入力を 12.345 に変換できました!

上記の処理をC#風に表現するとこんな感じです。

// 入力
float inputFloat = 12.34567;
int decimalScale = 1000;

// 1000倍にする
float scaledFloat = inputFloat * decimalScale;

// int型に変換する。その際に小数を切り下げる。
int roundedInt = (int)scaledFloat;

// 1000分の1倍にする
float outputFloat = (float)roundedInt / decimalScale;

桁数は DecimalScale で指定しています。以下のように10のべき乗で指定します。

DecimalScale 桁数
10 1
100 2
1000 3
10000 4
... ...

0の数がそのまま桁数になるイメージです。

Convert Float To Int アクションの Rounding をいじれば、 切り上げ四捨五入 にも対応できます!

さいごに

本記事作成にあたり、以下のページを参考にしました!ありがとうございました!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0