limq

          rainman
          隨筆 - 19, 文章 - 2, 評論 - 115, 引用 - 1
          數據加載中……

          四舍五入保留小數后兩位

           

           1 /**
           2  * Contains static utility methods.
           3  */
           4 public class BOUtils {
           5 
           6  public static Double getRoundedDouble( double unroundedValue ){
           7     // Get the integer portion of the value
           8     double intPortion = Math.floor( unroundedValue );
           9 
          10     // Get the unrounded decimal portion
          11     double unroundedDecimalPortion = ( unroundedValue - intPortion );
          12 
          13     /* ALERT - This next code interferes with I18N. We eventually need   */
          14     /*         to change this not assume only round to 2 decimal places. */
          15 
          16     /* Multiply the decimal places by 100, which shitfs the decimal point
          17     /* two places to the left. Then round it so that we get a round to
          18     /* two decimal places. For example, if we started with 17.655 and stripped
          19     /* off the int portion, which left .655. After we shift, we are left with
          20     /* 65.5. Then a round will gives us 66. We can then put it all back
          21     /* together */
          22     double roundedDecimalPortion = Math.round( unroundedDecimalPortion * 100 );
          23 
          24     // Shift the decimal point back two places to the right
          25     roundedDecimalPortion = roundedDecimalPortion / 100;
          26 
          27     // Add the int portion and decimal portions back together
          28     double total = intPortion + roundedDecimalPortion;
          29 
          30     return new Double( total );
          31   }
          32 }

          posted on 2005-09-21 23:59 limq 閱讀(7742) 評論(2)  編輯  收藏 所屬分類: 編程技巧

          評論

          # re: 四舍五入保留小數后兩位  回復  更多評論   

          new DecimalFormat("0.00").format(*******);
          這樣也可以,你那種太麻煩。
          2005-11-19 14:26 | 網絡幽靈

          # re: 四舍五入保留小數后兩位  回復  更多評論   

          是呀,在創建的時候,用數字的字符串形式創建,就可以了

          new BigDecimal("99.115").setScale(2, BigDecimal.ROUND_HARF_UP);
          2006-11-01 16:48 | Toez
          主站蜘蛛池模板: 河曲县| 元氏县| 睢宁县| 嵊州市| 黄梅县| 朝阳县| 黎川县| 古丈县| 荃湾区| 枣强县| 甘肃省| 东乌| 湘西| 呈贡县| 林芝县| 临沭县| 邵武市| 明光市| 深水埗区| 赫章县| 阜新市| 塘沽区| 南漳县| 开鲁县| 安化县| 鄂托克旗| 余庆县| 化德县| 青川县| 台东市| 绥化市| 遵义市| 榆林市| 金平| 辛集市| 嘉义县| 合作市| 甘孜| 安泽县| 镇沅| 白水县|