专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

解决浮点运算精度不准确,BigDecimal 加减乘除

package com.kflh.boxApi.utils.util;

import java.math.BigDecimal;

/**
 * @program: BoxApi
 * @description: 计算浮点数
 * @author: eterntiyz
 * @create: 2019-01-17 11:10
 */
public class DoubleCalendar {

    /** 
     * @Description: 浮点加法
     * @Param: [] 
     * @return: java.lang.Double 
     * @Author: tonyzhang 
     * @Date: 2019-01-17 11:27
     */ 
    public static Double add(String str1,String str2) {
        BigDecimal bignum1 = new BigDecimal(str1);
        BigDecimal bignum2 = new BigDecimal(str2);
        BigDecimal bignum3 = bignum1.add(bignum2);
        return bignum3.doubleValue();
    }

    /** 
     * @Description: 浮点减法 
     * @Param: [] 
     * @return: java.lang.Double 
     * @Author: tonyzhang 
     * @Date: 2019-01-17 11:27
     */ 
    public static Double subtract(String str1,String str2) {
        BigDecimal bignum1 = new BigDecimal(str1);
        BigDecimal bignum2 = new BigDecimal(str2);
        BigDecimal bignum3 = bignum1.subtract(bignum2);
        return bignum3.doubleValue();
    }

    /**
     * @Description: 浮点乘法
     * @Param: str1为分母,str2为分子
     * @return: java.lang.Double
     * @Author: tonyzhang
     * @Date: 2019-01-17 11:26
     */
    public static Double multiply(String str1,String str2) {
        BigDecimal bignum1 = new BigDecimal(str1);
        BigDecimal bignum2 = new BigDecimal(str2);
        BigDecimal bignum3 = bignum1.multiply(bignum2);
        return bignum3.doubleValue();
    }

    /**
     * @Description: 浮点除法
     * @Param: []
     * @return: java.lang.Double
     * @Author: tonyzhang
     * @Date: 2019-01-17 11:26
     */
    public static Double divide(String str1,String str2) {
        BigDecimal bignum1 = new BigDecimal(str1);
        BigDecimal bignum2 = new BigDecimal(str2);
        //参数意义.bignum1为分母,bignum2为分子,scale保留的位数,BigDecimal.ROUND_DOWN表示不进位
        BigDecimal bignum3 = bignum1.divide(bignum2,2,BigDecimal.ROUND_DOWN);
        return bignum3.doubleValue();
    }

    public static void main(String[] args) {
        System.out.println(divide("4600.0","0.6"));
    }
}

文章永久链接:https://tech.souyunku.com/46168

未经允许不得转载:搜云库技术团队 » 解决浮点运算精度不准确,BigDecimal 加减乘除

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们