BigDecimal的使用

BigDecimal的使用

每天点滴努力,成就编程路

很多人在项目开发过程中会遇到涉及金额的场景,对于新手来说,可能会踩坑。笔者在2020年3月份开发的项目语言是PHP,众所周知,php是弱类型语言,所以在开发过程中并不需要去定义变量类型。故看到金额,直接强转double,造成项目的金额时不时一大串数字。这种情况在Java语言中是这样处理的。

用什么来计算金额

package com.sise.demo2.demo;

import java.math.BigDecimal;

/**
 * author zxq
 * date 2020/7/29 21:34
 */
public class BigDecimalTest {

    public static void main(String args[]){


        System.out.println("一些错误示例");

        System.out.println(0.03+0.02);

        System.out.println("-----number1--------");
        double number1 =  1.23;
        double number1_1 =  3.66;
        double result = number1+number1_1;
        System.out.println("result:"+result);

        BigDecimal bigDouble = new BigDecimal(number1);
        System.out.println("bigDouble:"+bigDouble);

        System.out.println("一些错误示例 end");


        System.out.println("------方式一-------");
        double number2 =  1.12;
        BigDecimal big1 = new BigDecimal(Double.toString(number2));
        System.out.println("BigDecimal:"+big1);

        System.out.println("------方式二-------");
        double number3 =  1.12;
        BigDecimal big2 = BigDecimal.valueOf(number3);

        System.out.println("BigDecimal:"+big2);


        System.out.println("------加法-------");
        double a1 = 2.21;
        double b1 = 3.66;
        BigDecimal bigDecimal1 = BigDecimal.valueOf(a1);
        BigDecimal bigDecimal2 = BigDecimal.valueOf(b1);
        BigDecimal result1 = bigDecimal1.add(bigDecimal2);
        System.out.println("result1:"+result1);

        System.out.println("------减法-------");
        double a2 = 2.21;
        double b2 = 3.66;
        BigDecimal bigDecimal3 = BigDecimal.valueOf(a2);
        BigDecimal bigDecimal4 = BigDecimal.valueOf(b2);
        BigDecimal result2 = bigDecimal4.subtract(bigDecimal3);
        System.out.println("result2:"+result2);

        System.out.println("------乘法-------");
        double a3 = 2.21;
        double b3 = 3.66;
        BigDecimal bigDecimal5 = BigDecimal.valueOf(a3);
        BigDecimal bigDecimal6 = BigDecimal.valueOf(b3);
        BigDecimal result3 = bigDecimal5.multiply(bigDecimal6);
        System.out.println("result3:"+result3);

        System.out.println("------除法-------");
        double a4 = 4.32;
        double b4 = 3.66;
        BigDecimal bigDecimal7 = BigDecimal.valueOf(a4);
        BigDecimal bigDecimal8 = BigDecimal.valueOf(b4);
        BigDecimal result4 = bigDecimal7.add(bigDecimal8);
        System.out.println("result4:"+result4);


    }
    
}

运行截图

BigDecimal的使用_第1张图片

个人理解,如有错误,请联系我,非常感谢!

你可能感兴趣的:(Java)