我是靠谱客的博主 飘逸音响,最近开发中收集的这篇文章主要介绍new BigDecimal(0.1)与new BigDecimal(”0.1″)构造函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在使用BigDecimal进行比较的时候,new BigDecimal()构造函数。传入double无法准确地表示为 double(或者说对于该情况,不能表示为任何有限长度的二进制小数)。这样,传入 到构造方法的值不会正好等于 0.1(虽然表面上等于该值)。 另一方面,String 构造方法是完全可预知的:写入 new BigDecimal(”0.1″) 将创建一个 BigDecimal,它正好 等于预期的 0.1。

结论:用String的valueOf转换成String;new BigDecimal(String.valueOf(amount))
BigDecimal的四则运算
加法bigDecimal1.add(bigDecimal2)
减法bigDecimal1.subtract(bigDecimal2)
乘法bigDecimal1.multiply(bigDecimal2)
除法bigDecimal1.divide(bigDecimal2)

BigDecimal 对小数的处理:

 

DecimalFormat   df   =new  DecimalFormat("#.00"); 

例:new java.text.DecimalFormat("#.00").format(3.1415926)

#.00 表示两位小数 #.0000四位小数 以此类推...

 

通过setScale()方法

double   f   =   111231.5585; 

BigDecimal   b   =   new   BigDecimal(f); 

double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue(); //保留2位小数

 

BigDecimal.setScale()方法用于格式化小数点

setScale(1)表示保留一位小数,默认用四舍五入方式 

setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 

setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 

setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4

 

setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍

最后

以上就是飘逸音响为你收集整理的new BigDecimal(0.1)与new BigDecimal(”0.1″)构造函数的全部内容,希望文章能够帮你解决new BigDecimal(0.1)与new BigDecimal(”0.1″)构造函数所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部