java 保留小数点4位,不足时用0补足
例如:doubleb=96.6;处理后:要得到Doubleb=96.6000;类型一定要是Double型,且结果为96.6000Doubleb=96.612345,这种的...
例如:double b = 96.6;
处理后:要得到 Double b = 96.6000; 类型一定要是Double型,且结果为96.6000
Double b =96.612345,这种的我自己会,取小数点后4位,问题在于 小数点后不超过4位时,如何用0取 展开
处理后:要得到 Double b = 96.6000; 类型一定要是Double型,且结果为96.6000
Double b =96.612345,这种的我自己会,取小数点后4位,问题在于 小数点后不超过4位时,如何用0取 展开
2个回答
展开全部
Double 似乎不会记住当时有多少个 scale,而 BigDecimal 就会记住。所以这个 96.6000 跟 96.6 是一样的,不能区分出来,任何计算都可能把它转换成 96.6, 所以你还想要后面跟着几个占位的0就麻烦了。
如果是用 java.math.BigDecimal 就没有这个问题,它始终能记得需要几个小数位。如果你只是需要在转换成字符串时补齐4个位就容易了。
System.out.println("Double :" + new DecimalFormat("#,##0.0000").format(new Double("96.00000")));
如果是用 java.math.BigDecimal 就没有这个问题,它始终能记得需要几个小数位。如果你只是需要在转换成字符串时补齐4个位就容易了。
System.out.println("Double :" + new DecimalFormat("#,##0.0000").format(new Double("96.00000")));
追问
我知到可以这样,new DecimalFormat("#,##0.0000").format(new Double("96.00000"))); 返回的是String,,我最终把它转换为Double就又回到了96.6,我是传值的时候需要传一个小数点后有4位的。我要传的值是Double型,我不能给一个String啊
追答
因为 Double 不会记住保留几个小数位,只是看有尾数就保留,没有的位置就去掉,所以用 Double 做不到这点,再说了用 Double 类型本身就不是一个好主意。一般数字运算应该用 BigDecimal ,大数字用 BigInteger 等。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询