[java] BigDecimal用法小试

BigDecimal

BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。

是用户用来控制数值精度和舍入方法的类,适合用于解决数据精度过滤问题。

这里只是作为一个引子,如果需要用到还是查看api的比较好。

import java.math.BigDecimal; 
 
 
public class DecimalTest { 
    public static void main(String[] args) { 
        double num=12.345623; 
        BigDecimal value1=new BigDecimal(num); 
        System.out.println("数字构造"+value1); 
        BigDecimal value2=new BigDecimal(Double.valueOf(num).toString()); 
        System.out.println("字符构造"+value2); 
        System.out.println("由输出的结果我们可以看到使用数字类型的构造已经失真了,所以最好还是采用字符构造"); 
         
        //对于向上下距离相等的数值的舍入,保留2位小数 
        //setScale方法中,第一个参数是设置保留小数位数,第二个参数是这是舍入方式 
        //四舍五入 
        BigDecimal value =value2.setScale(2, BigDecimal.ROUND_HALF_UP); 
        System.out.println("ROUND_HALF_UP: "+value); 
        //舍入趋向于零的方式 
        value=value2.setScale(2, BigDecimal.ROUND_DOWN); 
        System.out.println("ROUND_DOWN: "+value); 
        //舍入远离零的方式 
        value=value2.setScale(2, BigDecimal.ROUND_UP); 
        System.out.println("ROUND_UP"+value); 
    } 
} 

输出结果:

 
 
  1. 数字构造12.345622999999999791498339618556201457977294921875 
  2. 字符构造12.345623 
  3. 由输出的结果我们可以看到使用数字类型的构造已经失真了,所以最好还是采用字符构造 
  4. ROUND_HALF_UP: 12.35 
  5. ROUND_DOWN: 12.34 
  6. ROUND_UP12.35 

当我们需要对大量的数据进行精度变换的时候用此类很简便。

 

本文出自 orangleliu笔记本 博客,请务必保留此出处http://blog.csdn.net/orangleliu/article/details/38309429

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值