Java中Math類容易搞混的幾個方法

 

  1. package com.anjoyo.day1124;  
  2.  
  3. public class TestMath {  
  4.     public static void main(String[] args) {  
  5.         double i = 11.4;  
  6.         double i1 = 11.5;  
  7.         double i2 = 11.6;  
  8.         double i3 = -11.4;  
  9.         double i4 = -11.5;  
  10.         double i5 = -11.6;  
  11.         /*ceil(double d):返回大於等於參數並等於某個整數的最小double值。也就是向上取最接近參數的整數的double值。  
  12.         *  特殊情況    如果參數值已經等於某個整數,那麼結果與該參數相同。  
  13.                     如果參數爲 NaN、無窮大、正 0 或負 0,那麼結果與參數相同。   
  14.                     如果參數值小於 0,但是大於 -1.0,那麼結果爲負 0。  
  15.                     注意,Math.ceil(x) 的值與 -Math.floor(-x) 的值完全相同。  
  16.         */ 
  17.         System.out.println(Math.ceil(i));//12.0  
  18.         System.out.println(Math.ceil(i1));//12.0  
  19.         System.out.println(Math.ceil(i2));//12.0  
  20.         System.out.println(Math.ceil(i3));//-11.0  
  21.         System.out.println(Math.ceil(i4));//-11.0  
  22.         System.out.println(Math.ceil(i5));//-11.0  
  23.           
  24.         /*public static double floor(double a):  
  25.          *返回小於等於參數並等於某個整數的最大double值。也就是向下取最接近參數的整數的double值。  
  26.          *特殊情況:  
  27.          *  如果參數值已經等於某個整數,那麼結果與該參數相同。  
  28.          *  如果參數爲 NaN、無窮大、正 0 或負 0,那麼結果與參數相同。  
  29.          * */ 
  30.         System.out.println(Math.floor(i));//11.0  
  31.         System.out.println(Math.floor(i1));//11.0  
  32.         System.out.println(Math.floor(i2));//11.0  
  33.         System.out.println(Math.floor(i3));//-12.0  
  34.         System.out.println(Math.floor(i4));//-12.0  
  35.         System.out.println(Math.floor(i5));//-12.0  
  36.           
  37.         /*public static int round(float a)  
  38.          *  加上 1/2,對結果調用 floor 並將所得結果強制轉換爲 int 類型。換句話說,結果等於以下表達式的值:   
  39.          *  (int)Math.floor(a + 0.5f)   
  40.          * 也就是四捨五入,但是要注意負數的時候.5是捨去的。  
  41.          * 特殊情況:  
  42.          * 如果參數爲 NaN,那麼結果爲 0。   
  43.          * 如果結果爲負無窮大或任何小於等於 Integer.MIN_VALUE 的值,那麼結果等於 Integer.MIN_VALUE 的值。   
  44.          * 如果參數爲正無窮大或任何大於等於 Integer.MAX_VALUE 的值,那麼結果等於 Integer.MAX_VALUE 的值。  
  45.          * */ 
  46.         System.out.println(Math.round(i));//11  
  47.         System.out.println(Math.round(i1));//12  
  48.         System.out.println(Math.round(i2));//12  
  49.         System.out.println(Math.round(i3));//-11  
  50.         System.out.println(Math.round(i4));//-11  
  51.         System.out.println(Math.round(i5));//-12  
  52.     }  
  53. }  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章