zoukankan      html  css  js  c++  java
  • BigDecimal

    import java.math.BigDecimal;
    import java.math.RoundingMode;
    
    public class BigDecimalTest {
        public static void main(String[] args) {
            String raw1 = "99.9454";
            String raw2 = "-10.0354";
            System.out.println(acc(raw1));
            System.out.println(acc(raw2));
        }
    
        public static String acc(String raw) {
            // 中间计算结果
            BigDecimal temp = new BigDecimal(raw);
            temp = temp.setScale(2, RoundingMode.HALF_UP);
            String str = temp.toString();
            char tail = str.charAt(str.length() - 1);
            // 正负取舍策略不同
            if (temp.compareTo(new BigDecimal(0)) < 0) {
                if (tail > '5') {
                    tail = '5';
                } else {
                    tail = '0';
                    temp = temp.add(new BigDecimal("0.1"));
                }
            }
            if (temp.compareTo(new BigDecimal(0)) > 0) {
                if (tail < '5') {
                    tail = '5';
                } else {
                    tail = '0';
                    temp = temp.add(new BigDecimal("0.1"));
                }
            }
            str = temp.toString();
            String head = str.substring(0, str.length() - 1);
            BigDecimal result = new BigDecimal(head + tail);
            return result.toString();
        }
    }
  • 相关阅读:
    Linux监控内核SNMP计数器
    wireshark使用手册
    【LinuxShell】echo用法详解
    【Coredump】调试之旅
    汇编指令
    从零开始学Java (五)条件选择
    从零开始学Java (四)输入输出
    Dart基础
    树相关
    递归简介
  • 原文地址:https://www.cnblogs.com/xzs603/p/3657749.html
Copyright © 2011-2022 走看看