zoukankan      html  css  js  c++  java
  • java精度计算代码,指定精确小数位

      本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处。

      http://www.cnblogs.com/king-xg/p/6369740.html

      如果觉得对您有帮助,请点击推荐或收藏本博客,谢谢。
      

    java代码:

    public class App2 {
    
        public static void main(String[] args) {
            String val = checkNumber("10.1234155", 2, 6).toString();
            System.out.println(val);
        }
    
        public static BigDecimal checkNumber(String number, int min, int max) {
            // 初始化为max位小数
            DecimalFormat df = new DecimalFormat(getMaxStr(max));
            String num = df.format(Double.parseDouble(number));
            BigDecimal bd = new BigDecimal(num);
            String val = bd.toString();
            val = val.replaceAll("^(0+)", "");
            val = val.replaceAll("(0+)$", "");
            int idx = val.indexOf(".");
            int len = val.substring(idx + 1).length();
            if (len < min) {
                if (len == 0 && idx == 0) {
                    bd = new BigDecimal("0.00");
                } else {
                    bd = new BigDecimal(val).setScale(2);
                }
            } else {
                bd = new BigDecimal(val).setScale(len);
            }
            return bd;
        }
    
        public static String getMaxStr(int max) {
            String val = "0.";
            for (int i = 0; i < max; i++) {
                val += "0";
            }
            return val;
        }
    }

    控制台:

    原理:通过utf-8的字节长度判断是中文还是英文,说明: utf-8解析的字符如果是中文(包括中文符号)均会解析成3个字节,英文则解析成2个。

  • 相关阅读:
    Haskell Interactive Development in Emacs
    Access Java API in Groovy Script
    手工设置Eclipse文本编辑器的配色
    Color Theme of Emacs
    Gnucash的投资记录
    Special Forms and Syntax Sugars in Clojure
    Use w3m as Web Browser
    SSE指令集加速之 I420转BGR24
    【图像处理】 增加程序速度的方法
    TBB 入门笔记
  • 原文地址:https://www.cnblogs.com/king-xg/p/6369740.html
Copyright © 2011-2022 走看看