更新日: 作成日:
四捨五入、切り上げ、切り捨てを行う
■はじめに
UiPath Studio の Math クラスの各メソッドから四捨五入、切り上げ、切り捨てを行う方法を紹介します。
Round メソッドは、最も近い整数、または指定した小数点以下の桁数に丸めた値を返します。
Ceiling メソッドは、指定された小数以上の値の内、最小の整数を返します。
Floor メソッドは、指定された小数以下の値の内、最大の整数を返します。
Math クラスのメソッドを使用するのに、インスタンス化を行う必要はありません。
VB.Net のメソッドや関数は、代入や条件分岐のアクティビティなどの VB の式を入力する欄で使用することができます。
■メソッドの引数と戻り値
Math.Round(小数)
小数を最も近い整数値に丸められ、中間値の場合は偶数丸めされた整数を返します。
引数「数値型(Double)」・・・丸めを行う小数を指定します。
戻り値の型・・・数値型(Double)
※丸める桁数を指定できず、返ってくる値は偶数丸めされた整数になります
Math.Round(小数, 整数)
小数を指定された小数部の桁数に丸められ、中間値の場合は偶数丸めされた値を返します。
引数1「数値型(Double)」・・・丸めを行う小数を指定します。
引数2「数値型(Int32)」・・・丸めを行う小数部の桁数を指定します。
戻り値の型・・・数値型(Double)
※丸める桁数を指定できますが、指定できる桁数は小数部のみとなり、返ってくる値は偶数丸めされた小数になります
Math.Round(小数, 丸め種類)
指定した丸め規則に従って、小数を丸めて整数を返します。
引数1「数値型(Double)」・・・丸めを行う小数を指定します。
引数2「丸め種類」・・・丸め方法を指定します。
戻り値の型・・・数値型(Double)
※丸め方法で「四捨五入」を指定できますが、丸める桁数を指定することは出来ず、返ってくる値は整数になります
引数「丸め種類」
値 | 説明 | 例 |
---|---|---|
ToEven | 中間値(例: 0.5)の場合、偶数丸めされた整数を返します | -1.5 ⇒ -2、2.5 ⇒ 2 |
AwayFromZero | 中間値(例: 0.5)の場合、四捨五入された整数を返します | -1.5 ⇒ -2、2.5 ⇒ 3 |
Math.Ceiling(小数)
指定した小数以上の値の内、最小の整数を返します。
引数「数値型(Double)」・・・切り上げを行う小数を指定します。
戻り値の型・・・数値型(Double)
※切り上げができますが、切り上げを行う桁数を指定することは出来ず、返ってくる値は整数になります
Math.Floor(小数)
指定した小数以下の値の内、最大の整数を返します。
引数「数値型(Double)」・・・切り捨てを行う小数を指定します。
戻り値の型・・・数値型(Double)
※切り捨てができますが、切り捨てを行う桁数を指定することは出来ず、返ってくる値は整数になります
■解説
偶数丸めとは、端数が 0.5 より小さいなら切り捨て、 0.5 より大きいなら切り上げ、
ちょうど 0.5 なら切り捨てと切り上げのうち結果が偶数となる方へ丸められることです。
偶数.5 なら切り捨て、奇数.5 なら切り上げとなります。
<例>0.5 ⇒ 0 、 1.5 ⇒ 2 、 2.5 ⇒ 2 、 3.5 ⇒ 4
四捨五入や切り上げ、切り捨て
Round 、Ceiling 、 Floor メソッドをそのまま使用する場合、丸める桁数を指定できない、または丸め方法が四捨五入ではなく偶数丸めになります。
丸めを行う桁数を整数部・小数部の桁数から指定して、四捨五入や切り上げ、切り捨てを行う場合、下記の計算式を行う必要があります。
number:丸める小数
decimals:丸めを行う桁数
・四捨五入
Math.Floor(number * 10^decimals + 0.5) / 10^decimals
・切り上げ
Math.Ceiling(number * 10^decimals) / 10^decimals
・切り捨て
Math.Floor(number * 10^decimals) / 10^decimals
■使用例
Math クラスの各メソッドの使用例を紹介します。
各メソッドをそのまま使用する
変数 d の型は System.Double
d = Math.Round(4.4) 4
d = Math.Round(4.49) 4
d = Math.Round(4.5) 4
d = Math.Round(4.51) 5
d = Math.Round(4.6) 5
d = Math.Round(5.5) 6
d = Math.Round(3.45, 1) 3.4
d = Math.Round(3.55, 1) 3.6
d = Math.Round(4.45, 1) 4.4
d = Math.Round(4.55, 1) 4.6
d = Math.Round(15.252, -1) ArgumentOutOfRangeException
d = Math.Round(15.252, 0) 15
d = Math.Round(15.252, 1) 15.3
d = Math.Round(15.252, 2) 15.25
d = Math.Round(4.4, MidpointRounding.ToEven) 4
d = Math.Round(4.49, MidpointRounding.ToEven) 4
d = Math.Round(4.5, MidpointRounding.ToEven) 4
d = Math.Round(4.51, MidpointRounding.ToEven) 5
d = Math.Round(4.6, MidpointRounding.ToEven) 5
d = Math.Round(5.5, MidpointRounding.ToEven) 6
d = Math.Round(4.4, MidpointRounding.AwayFromZero) 4
d = Math.Round(4.49, MidpointRounding.AwayFromZero) 4
d = Math.Round(4.5, MidpointRounding.AwayFromZero) 5
d = Math.Round(4.51, MidpointRounding.AwayFromZero) 5
d = Math.Round(4.6, MidpointRounding.AwayFromZero) 5
d = Math.Round(5.5, MidpointRounding.AwayFromZero) 6
d = Math.Ceiling(4.0) 4
d = Math.Ceiling(4.01) 5
d = Math.Ceiling(4.1) 5
d = Math.Ceiling(0.123) 1
d = Math.Ceiling(-0.123) 0
d = Math.Ceiling(-3.99) -3
d = Math.Ceiling(-4.01) -4
d = Math.Floor(4.0) 4
d = Math.Floor(4.01) 4
d = Math.Floor(4.1) 4
d = Math.Floor(0.123) 0
d = Math.Floor(-0.123) -1
d = Math.Floor(-3.99) -4
d = Math.Floor(-4.01) -5
四捨五入する
変数 d の型は System.Double
number = 1254.5454
d = Math.Floor(number * 10^-3 + 0.5) / 10^-3 1000
d = Math.Floor(number * 10^-2 + 0.5) / 10^-2 1300
d = Math.Floor(number * 10^-1 + 0.5) / 10^-1 1250
d = Math.Floor(number * 10^0 + 0.5) / 10^0 1255
d = Math.Floor(number * 10^1 + 0.5) / 10^1 1254.5
d = Math.Floor(number * 10^2 + 0.5) / 10^2 1254.55
d = Math.Floor(number * 10^3 + 0.5) / 10^3 1254.545
切り上げする
変数 d の型は System.Double
number = 1254.5454
d = Math.Ceiling(number * 10^-3) / 10^-3 2000
d = Math.Ceiling(number * 10^-2) / 10^-2 1300
d = Math.Ceiling(number * 10^-1) / 10^-1 1260
d = Math.Ceiling(number * 10^0) / 10^0 1255
d = Math.Ceiling(number * 10^1) / 10^1 1254.6
d = Math.Ceiling(number * 10^2) / 10^2 1254.55
d = Math.Ceiling(number * 10^3) / 10^3 1254.546
切り捨てする
変数 d の型は System.Double
number = 1254.5454
d = Math.Floor(number * 10^-3) / 10^-3 1000
d = Math.Floor(number * 10^-2) / 10^-2 1200
d = Math.Floor(number * 10^-1) / 10^-1 1250
d = Math.Floor(number * 10^0) / 10^0 1254
d = Math.Floor(number * 10^1) / 10^1 1254.5
d = Math.Floor(number * 10^2) / 10^2 1254.54
d = Math.Floor(number * 10^3) / 10^3 1254.545