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();
        }
    }
  • 相关阅读:
    [NOI2001]炮兵阵地
    POJ 2411 Mondriaan's Dream
    【模板】割点(割顶)
    [Noip2007]Core树网的核
    2018.09.09模拟总结
    2018.09.08模拟总结
    [USACO11JAN]Roads and Planes
    最优贸易
    [USACO08JAN]Telephone Lines
    Calabash(葫芦娃)
  • 原文地址:https://www.cnblogs.com/xzs603/p/3657749.html
Copyright © 2011-2022 走看看