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 閱讀(7723) 評論(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
          主站蜘蛛池模板: 自贡市| 伊金霍洛旗| 镇坪县| 丰宁| 石渠县| 秀山| 社会| 曲周县| 突泉县| 灵石县| 麦盖提县| 巴楚县| 娄底市| 大余县| 承德县| 安图县| 荃湾区| 蒲江县| 玉屏| 河南省| 徐水县| 洪江市| 合水县| 孟津县| 江川县| 芮城县| 东台市| 富宁县| 巴林右旗| 云阳县| 杂多县| 贡觉县| 尼木县| 富宁县| 万宁市| 克拉玛依市| 景谷| 达州市| 柳河县| 青田县| 固安县|