我是靠谱客的博主 迷你美女,最近开发中收集的这篇文章主要介绍java.math.BigDecimal 的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1:问题场景:在金额的计算中, 会出现精度丢失的情况。

    数字计算时,计算机会将数字转换为最近似的二进制,在进行计算,这就会导致计算结果精度不正确。

    例如:0.1+0.2 =0.30000000000000004   。这个问题在众多编程语言中都出现过。

2:解决办法:这个问题在java中是使用java.math.BigDecimal进行计算。

3:常用方法:加减乘除,比较大小,是否为0,保留n为小数,向上向下,四舍五入。

      A : 加减乘除   

          BigDecimal  num= new BigDecimal ("10");

          num.add(num);

          num.subtract(num);

          num.multiply(num);

          num.divide(num);

     B :比较大小,是否为0

         num.compareTo(num)==1

         这个方法结果有-1 ,0 ,1 分别表示小于,大于,等于

         BigDecimal.ZERO 则表示0

      C:保留n位小数,向上向下取整,四舍五入,当出现无限循环小数时使用

         setScale的第一个参数是小数位数, 这个示例是保留2位小数, 后面是四舍五入规则.

         直接移除n位:

         num.setScale(n,BigDecimal.ROUND_DOWN)

         进位:

         num.setScale(n,BigDecimal.ROUND_UP)

         四舍五入,5进位

         num.setScale(n,BigDecimal.ROUND_HALP_UP)

         四舍五入,5舍弃

         num.setScale(n,BigDecimal.ROUND_HALP_DOWN)

     D:当小数位过长出现科学计算法时,去除末尾0,方法:stripTrailingZeros() 。不显示科学计算法 转换string。

        num.stripTrailingZeros().toString()

最后

以上就是迷你美女为你收集整理的java.math.BigDecimal 的使用的全部内容,希望文章能够帮你解决java.math.BigDecimal 的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部