Loading...
  所在位置:论坛首页 -> 计算机科学与技术 -> 程序设计 -> Java数值小数点数等精度的设定
回复

Java数值小数点数等精度的设定

作者:ade 时间:2009-10-22 17:23:01 收藏 编辑

今天上课有学生问,他现在做一个计费系统,按分钟计算,每小时假如1.5元,累计后从总额中减去,其中使用的是浮点数,问数值的精度如何设定,比如小数点保留2位,给出一个解决方法:

Java的浮点数运算的精度不是太好,我们可以考虑使用java.math.BigDecimal类,这个类就是用来表示大的十进制数的,并且其精度非常的高,更重要的是你可以设定获取的数的小数点数,这样就可以满足他的要求的。示例代码如下:

package com.historycreator.number;

public class NumberFormatTest {

 public static void main(String[] args)
 {
   //保留的小数点位数
    int scale = 2;
    
    java.math.BigDecimal bd1 = new java.math.BigDecimal(12.54);
     java.math.BigDecimal bd2 = new java.math.BigDecimal(5);

    //做除法
     java.math.BigDecimal result = bd1.divide(bd2);
    
    //注意,设定小数点位数后,会产生一个新的BigDecimal对象,这个对象是我们想要的
     result = result.setScale(scale,result.ROUND_HALF_UP);
 
    //输出看看,结果为2.51    
     System.out.println(result);
 }
}

 

输出结果为:2.51

 

高级回复

操作选项: 评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
  首页
Copyright 2006-2012 HistoryCreator.com Powered By: BBSGood 5
吉ICP备06005902号