📏
[Java] 色々な端数処理方式
端数処理は?
Wikipediaの定義はこれです
端数処理(はすうしょり)とは、与えられた数値を、ある一定の丸め幅の整数倍の数値に置き換えることである。平たく、丸め(まるめ)ともいう。常用的には、十進法で10となる数値の累乗(…100、10、1、0.1、0.01…)が丸め幅とされることが多いが、十進法以外のN進法についても同様である。
[1]
端数処理に関する関数や方法端数処理のために存在するもの
Math.ceil(double n)
関数 double
返す
機能: 小数部分を切り上げる。
規則: 正数であれば小数部分を捨てる後1を足す。負数であれば小数部分を捨てるだけ。
Javaの元実装代文:
Math.floor(double n)
関数 double
返す
機能: 小数部分を切り捨てる。
規則: 正数であれば小数部分を捨てるだけ。負数であれば小数部分を捨てる後1を引く。
Math.rint(double n)
関数 double
返す
機能: 最も近いの整数をdouble
型で返す。
規則:
- 整数であれば
double(n)
[2]を返す - 小数であれば
- 小数部分は
0.5
ではない:0.5
より小さいは切り捨て, さもないと切り上げ - 小数部分は
0.5
であれば: 最も近いの偶数をdouble
型で返す
- 小数部分は
Math.round(deci n)
[3]関数 int
まだはlong
返す
機能: 最も近いの整数をint
まだはlong
型で返す。
規則: Math.floor(n + 0.5)
を返す。n
はfloat
型の時はint
,n
はdouble
型の時はlong
を返す。
Javaの元実装代文:
Discussion