|  |  | 
 |  |  | package com.dayu.baselibrary.utils; | 
 |  |  |  | 
 |  |  | import android.text.TextUtils; | 
 |  |  |  | 
 |  |  | import java.math.BigDecimal; | 
 |  |  | import java.math.RoundingMode; | 
 |  |  | import java.text.DecimalFormat; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * Copyright (C), 2022, | 
 |  |  | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static int changeY2F(String amount) { | 
 |  |  |         if (TextUtils.isEmpty(amount)){ | 
 |  |  |             return 0; | 
 |  |  |         } | 
 |  |  |         BigDecimal bigDecimal = new BigDecimal(amount).setScale(2); | 
 |  |  |         return bigDecimal.multiply(new BigDecimal(100)).intValue(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 元转厘,确保price保留两位有效数字 | 
 |  |  |      * | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static int changeY2L(String amount) { | 
 |  |  |         BigDecimal bigDecimal = new BigDecimal(amount).setScale(3); | 
 |  |  |         return bigDecimal.multiply(new BigDecimal(1000)).intValue(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 分转元,转换为bigDecimal在toString | 
 |  |  | 
 |  |  |         return BigDecimal.valueOf(Long.valueOf(price)).divide(new BigDecimal(100)).toString(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 精确除法,保留两位小数 | 
 |  |  |      * | 
 |  |  |      * @param dividend | 
 |  |  |      * @param divisor | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static String intDiv(int dividend, int divisor) { | 
 |  |  |         double result = (double) dividend / divisor; | 
 |  |  |         // 使用 DecimalFormat 格式化结果,保留两位小数 | 
 |  |  |         DecimalFormat df = new DecimalFormat("#.##"); | 
 |  |  |         return df.format(result); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 系数和水价相乘获得电价保留三位小数 | 
 |  |  |      * @param num1 | 
 |  |  |      * @param num2 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static String multiplyPrice(float num1, float num2) { | 
 |  |  |         BigDecimal bd1 = BigDecimal.valueOf(num1); | 
 |  |  |         BigDecimal bd2 = BigDecimal.valueOf(num2); | 
 |  |  |         BigDecimal result = bd1.multiply(bd2); | 
 |  |  |         return result.setScale(3, RoundingMode.HALF_UP).toString(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * | 
 |  |  |      * @param num1 | 
 |  |  |      * @param num2 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static String sumPrice(float num1, float num2) { | 
 |  |  |         BigDecimal bd1 = BigDecimal.valueOf(num1); | 
 |  |  |         BigDecimal bd2 = BigDecimal.valueOf(num2); | 
 |  |  |         BigDecimal result = bd1.add(bd2); | 
 |  |  |         return result.setScale(2, RoundingMode.HALF_UP).toString(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |