新的起點(diǎn) 新的開始

          快樂生活 !

          java中的四舍五入問題。

            在 java中, 四舍五入通過 BigDecimal 來實(shí)現(xiàn)。一定要注意:BigDecimal is Immutable。也就是跟String一樣,對(duì)前一個(gè)的修改,比如setScale(), add()等都會(huì)返回一個(gè)新的BigDecimal.四舍五入舍入模式是 BigDecimal.ROUND_HALF_UP 其他的舍入?yún)⒖枷聢D:

                        不同舍入模式下的舍入操作匯總

          輸入數(shù)字 UP DOWN CEILING FLOOR HALF_UP HALF_DOWN HALF_EVEN UNNECESSARY
          5.5 6 5 6 5 6 5 6 拋出 ArithmeticException
          2.5 3 2 3 2 3 2 2 拋出 ArithmeticException
          1.6 2 1 2 1 2 2 2 拋出 ArithmeticException
          1.1 2 1 2 1 1 1 1 拋出 ArithmeticException
          1.0 1 1 1 1 1 1 1 1
          -1.0 -1 -1 -1 -1 -1 -1 -1 -1
          -1.1 -2 -1 -1 -2 -1 -1 -1 拋出 ArithmeticException
          -1.6 -2 -1 -1 -2 -2 -2 -2 拋出 ArithmeticException
          -2.5 -3 -2 -2 -3 -3 -2 -2 拋出 ArithmeticException
          -5.5 -6 -5 -5 -6 -6 -5 -6 拋出 ArithmeticException
          比如: 1/3 四舍五入保留位數(shù)
          new BigDecimal(1).setScale(4).divide(new BigDecimal(3),BigDecimal.ROUND_HALF_UP)?。。?333
          在加減乘除中還可以有一個(gè)參數(shù), 比如: multiply(BigDecimal multiplicand, MathContext mc) MathContext 也可以設(shè)置精度和舍入規(guī)則。
          MathContext m = new MathContext(1,RoundingMode.HALF_UP); //表示精度1位,舍入規(guī)則是四舍五入。

          還有注意的的是:結(jié)果的精度。如下圖
          OperationPreferred Scale of Result
          Add max(addend.scale(), augend.scale())
          Subtract max(minuend.scale(), subtrahend.scale())
          Multiply multiplier.scale() + multiplicand.scale()
          Divide dividend.scale() - divisor.scale()
          也就是說對(duì)于除法,結(jié)果的精度是被除數(shù)減去除數(shù)的精度。

          posted on 2007-04-09 17:07 advincenting 閱讀(2362) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          公告

          Locations of visitors to this pageBlogJava
        1. 首頁(yè)
        2. 新隨筆
        3. 聯(lián)系
        4. 聚合
        5. 管理
        6. <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統(tǒng)計(jì)

          常用鏈接

          留言簿(13)

          隨筆分類(71)

          隨筆檔案(179)

          文章檔案(13)

          新聞分類

          IT人的英語學(xué)習(xí)網(wǎng)站

          JAVA站點(diǎn)

          優(yōu)秀個(gè)人博客鏈接

          官網(wǎng)學(xué)習(xí)站點(diǎn)

          生活工作站點(diǎn)

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 乐业县| 景德镇市| 余姚市| 玉溪市| 乐清市| 奈曼旗| 咸阳市| 灵丘县| 林甸县| 龙山县| 仲巴县| 大姚县| 民丰县| 通许县| 宁乡县| 辉南县| 集安市| 清原| 昭觉县| 普安县| 汝州市| 康保县| 龙州县| 石狮市| 蒙城县| 嘉黎县| 扎赉特旗| 通河县| 新丰县| 呼伦贝尔市| 奉贤区| 浪卡子县| 建平县| 凤凰县| 丹棱县| 临安市| 闸北区| 肇庆市| 莱西市| 祁阳县| 琼结县|