最愛Java

          書山有路勤為徑,學海無涯苦作舟

          org.apache.commons.lang.math學習筆記

              在org.apache.commons.lang.math包中,一共有11個類。可以分成四組:
              1. 處理分數的Fraction類;
              2.處理數值的NumberUtils和IEEE754rUtils類,這里IEEE745r代表的是IEEE 754的標準,是一種浮點數的處理標準。
              3.處理隨機數的JVMRandom和RandomUtils類。
              4.處理數值范圍的Range, DoubleRange, FloatRange, IntRange, LangRange, NumberRange類。

              Fraction類能很方便地處理分數,并能進行分數的約分,加減乘除和指數運算以及求相對值。如:
              private void FractionDemo() {
                  Fraction fraction 
          = Fraction.getFraction(0.5);
                  System.out.println(fraction.getNumerator());
                  System.out.println(fraction.getDenominator());

                  fraction 
          = Fraction.getFraction("1/2");
                  System.out.println(fraction.doubleValue());

                  fraction 
          = Fraction.getFraction(12);
                  System.out.println(fraction.doubleValue());

                  fraction 
          = Fraction.getFraction(112);
                  System.out.println(fraction.doubleValue());

                  fraction 
          = Fraction.getFraction(24);
                  System.out.println(fraction.doubleValue());
                  fraction 
          = Fraction.getReducedFraction(24);
                  System.out.println(fraction.doubleValue());

                  System.out.println(Fraction.getFraction(
          -12).abs());
                  System.out.println(Fraction.getFraction(
          1-2).abs());
                  System.out.println(Fraction.getFraction(
          12).add(
                          Fraction.getFraction(
          12)));
                  System.out.println(Fraction.getFraction(
          12).subtract(
                          Fraction.getFraction(
          12)));
                  System.out.println(Fraction.getFraction(
          12).multiplyBy(
                          Fraction.getFraction(
          12)));
                  System.out.println(Fraction.getFraction(
          12).divideBy(
                          Fraction.getFraction(
          12)));
                  System.out.println(Fraction.getFraction(
          12).pow(2));
              }

              NumberUtils的功能相對來說就有點雞肋了,他能通過createXXX(String str)創建各種類型的數值,即使你傳入的參數是0X123這樣代表16進制的數,它也能正確解析出來。同時它還具有獲取數組最大最小數的功能。
              private void NumberUtilsDemo() {
                  System.out.println(
          "Is 0x3F a number? " + NumberUtils.isNumber("0x3F"));
                  
          double[] array = 1.03.40.87.14.6 };
                  
          double max = NumberUtils.max(array);
                  
          double min = NumberUtils.min(array);
                  System.out.println(
          "Max of array is: " + max);
                  System.out.println(
          "Min of array is: " + min);
                  System.out.println();
              }

                 JVMRandom繼承了java.util.Random類,其功能和Random差不多,只不過封裝了返回不同數據類型的方法而已。而RandomUtils則把JVMRandom的方法靜態化了。
              private void RandomUtilsDemo() {
                  
          for (int i = 0; i < 5; i++{
                      System.out.println(RandomUtils.nextInt(
          100));
                  }

                  System.out.println();
              }

              Range是一個abstract類,主要處理數值范圍的。DoubleRange, FloatRange, IntRange, LangRange和NumberRange都繼承了Range類,它們差不多,只是處理的數據類型不同而已。所以看一個類的使用方法就等于看了所有類的使用方法。
              private void NumberRangeDemo() {
                  Range normalScoreRange 
          = new DoubleRange(90120);
                  
          double score1 = 102.5;
                  
          double score2 = 79.9;
                  System.out.println(
          "Normal score range is: " + normalScoreRange);
                  System.out.println(
          "Is " + score1 + " a normal score? " + normalScoreRange.containsDouble(score1));
                  System.out.println(
          "Is " + score2 + " a normal score? " + normalScoreRange.containsDouble(score2));
                  System.out.println(normalScoreRange.overlapsRange(
          new IntRange(92,119)));
              }

          posted on 2009-01-08 19:43 Brian 閱讀(1284) 評論(0)  編輯  收藏 所屬分類: Jakarta Commons筆記

          公告


          導航

          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統計

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 景东| 元江| 莱州市| 梓潼县| 蚌埠市| 中西区| 靖安县| 绿春县| 南郑县| 南投县| 甘孜| 娄烦县| 富蕴县| 呼图壁县| 浪卡子县| 咸丰县| 柘荣县| 普兰店市| 洪泽县| 唐海县| 台东市| 文成县| 家居| 中山市| 苗栗县| 射阳县| 郑州市| 东乌| 新巴尔虎右旗| 和龙市| 城市| 莆田市| 马山县| 宜宾市| 油尖旺区| 翁源县| 正安县| 广汉市| 鹤山市| 东海县| 通州区|