[JAVA] 使用工具类-java精确到小数点后6位

2404 0
王子 2022-11-9 09:20:33 | 显示全部楼层 |阅读模式
目录

    工具类-java精确到小数点后6位
      有了下面解决方法
    java除法运算问题(保留小数)


工具类-java精确到小数点后6位

验证要求,必须精确到小数点后6位,但是后面都是0的话,double会省略0,正则验证不通过,所以

有了下面解决方法

精确到小数点后六位,若最后一位是0则用1代替。
  1. private double getSixScale(String s) {
  2.   //先精确到后6位,并转为字符串
  3.   String sixScaleString = new BigDecimal(s).setScale(6, BigDecimal.ROUND_HALF_UP).toString();
  4.   //若字符串最后一位是0,则用1代替
  5.   if ("0".equals(sixScaleString.substring(sixScaleString.length() - 1))) {
  6.     sixScaleString = sixScaleString.substring(0, sixScaleString.length() - 1) + "1";
  7.   }
  8.   //再转为double
  9.   return new BigDecimal(sixScaleString).doubleValue();
  10. }
复制代码
java除法运算问题(保留小数)

编程的人都知道,java中的“/”、“%”运算,其中前者为取整,后者取余数。
那么有没有快捷的运算方法取正常的运算结果呢?
查了资料,发现很简单。
代码如下:
  1. /*
  2. * TODO 除法运算,保留小数
  3. * @author 袁忠明
  4. * @date 2018-4-17下午2:24:48
  5. * @param a 被除数
  6. * @param b 除数
  7. * @return 商
  8. */
  9. public static String txfloat(int a,int b) {
  10.     // TODO 自动生成的方法存根
  11.     DecimalFormat df=new DecimalFormat("0.00");//设置保留位数
  12.     return df.format((float)a/b);
  13. }
复制代码
以上为个人经验,希望能给大家一个参考,也希望大家多多支持中国红客联盟。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行