zoukankan      html  css  js  c++  java
  • 【Java、Util】元和分的相互转换

    import java.math.BigDecimal;
    import java.text.DecimalFormat;
    
    
    /**
     * @Title: ChangeMoneyUtil.java
     * @Package: 
     * @Description: TODO
     * @author: 
     * @date: 2017年5月24日 下午2:44:14
     * @version: V1.0
     */
    public class ChangeMoneyUtil {
    
        /**
         * 分转元
         * 
         * @param fen
         * @return
         * @author 
         * @date 2017年5月24日
         */
        public static String changeFenToYuan(int fen) {
            DecimalFormat def = new DecimalFormat("0.00");// 格式化小数
            String s = def.format((float) fen / 100);
            return s;
        }
    
        /**
         * 分转元
         * 
         * @param fen
         * @return
         * @author 
         * @date 2017年7月3日
         */
        public static String changeFenToYuan(String fen) {
            DecimalFormat def = new DecimalFormat("0.00");// 格式化小数
            if (!StringUtil.hasText(fen)) {
                return def.format(Float.valueOf("0"));
            }
            String s = def.format(Float.valueOf(fen) / 100);
            return s;
        }
    
        /**
         * 元转分
         * 
         * @param fen
         * @return
         * @author 
         * @date 2017年5月24日
         */
        public static int changeYuanToFen(double yuan) {
            return Integer.valueOf((int) (yuan * 100));
        }
    
        /**
         * 元转分
         * 
         * @param fen
         * @return
         * @author 
         * @date 2017年7月3日
         */
        public static int changeYuanToFen(String yuan) {
            if (!StringUtil.hasText(yuan)) {
                return 0;
            }
            if (yuan.indexOf(".") != -1) {
                double num = Double.valueOf(yuan) * 100;
                // 使用round方法:解决Double精度问题
                if (round(num % 1.0,2,BigDecimal.ROUND_HALF_UP) == 0) {
                    return Integer.valueOf(String.valueOf((long) num));
                }
                return Integer.valueOf(String.valueOf(num));
            }
            return Integer.valueOf(yuan) * 100;
        }
    
         /**   
         * 对double数据进行取精度.   
         * @param value  double数据.   
         * @param scale  精度位数(保留的小数位数).   
         * @param roundingMode  精度取值方式.   
         * @return 精度计算后的数据.   
         */ 
        public static double round(double value, int scale,  
                int roundingMode) {    
           BigDecimal bd = new BigDecimal(value);    
           bd = bd.setScale(scale, roundingMode);    
           double d = bd.doubleValue();    
           bd = null;    
           return d;    
       }
        
        /**
         * double转int
         * @param price
         * @return
         * @author 
         * @date 2017年7月12日
         */
        public static int doubleFormatToInt(Double price){
            if(null == price){
                return 0;
            }
            return Integer.valueOf(new DecimalFormat("#").format(price));
        }
        
        public static void main(String[] args) {
            /*System.out.println(changeFenToYuan(1002));
            System.out.println(changeFenToYuan(1));
            System.out.println(changeFenToYuan(0));
            System.out.println(changeFenToYuan("1002"));
            System.out.println(changeFenToYuan("1"));
            System.out.println(changeFenToYuan("0"));
            System.out.println(changeFenToYuan(null));
            System.out.println(changeYuanToFen(0));
            System.out.println(changeYuanToFen(10.02));
            System.out.println(changeYuanToFen(0.00));
            System.out.println(changeYuanToFen(null));
            System.out.println(changeYuanToFen("10.02"));
            System.out.println(changeYuanToFen("0.00"));
            //System.out.println(Integer.valueOf("1.01"));
            System.out.println(doubleFormatToInt(-100.1));*/
            System.out.println(changeYuanToFen("1.1"));
            System.out.println(110%1.0);
        }
    }
  • 相关阅读:
    CISM国际注册信息安全经理认证与其他认证的差异
    CISD注册信息安全开发人员
    ISACA率先将技能网络安全培训与基于实际操作的考试和认证相结合
    信息安全意识
    2015版CISM国际注册安全经理中文教材
    如何持久建立信息安全意识宣贯/不解释
    北京CISSP免费考前模拟辅导讲座
    信息安全泄露越来越冲“钱”去
    利用碎片时间了解虚拟化安全---第一部分
    如何修改WAMP中mysql默认空密码
  • 原文地址:https://www.cnblogs.com/flydkPocketMagic/p/7449221.html
Copyright © 2011-2022 走看看