📏
[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