Java的Math類中提供了一系列關於數學運算的靜態方法,常見的運算整理如下[1]
算數運算
Math.sqrt() // 平方根
Math.cbrt() // 立方根
Math.pow(a, b) // 計算a的b次冪
Math.max(a, b) // 計算最大值
Math.min(a, b) // 計算最小值
Math.abs(a, b) // 取絕對值
舍入運算
Math.ceil() // 向上取整
Math.floor() // 向下取整
Math.round() // 四舍五入, 返回int(參數為float時)或long(參數為double時)
Math.rint() // 四舍五入, 返回double值(在 x.5 時向偶數舍入)
注意:除了中間值(.5)外,二者都是選擇向靠近它的整數舍入。在不考慮返回值類型的情況下,二者的主要區別在於Math.round
在.5時選擇向大數舍入, 而Math.rint()
會在.5的時候選擇向靠近它的偶數舍入,例如1.5和2.5都向2舍入。
Math.round
和 Math.rint
的區別:
隨機數
Math自帶一個隨機數方法Math.random()
, 用來生成一個[0, 1)
范圍內均勻分布的double類型(偽)隨機數。也可以使用它通過算數運算來組合形成各個區間的隨機數:
Math.randon() * 2 // [0, 2)
Math.random() + 1 // [1, 2)
Math.random() * 3 + 3 // [3, 6)
...
java的工具類java.util.Random
包中提供了更多關於隨機數的方法
高級數學運算
// 對數運算
Math.log() // 自然對數(底數e)
Math.log10() // 常用對數(底數10)
// 三角函數運算
Math.sin()
Math.cos()
Math.tan()