1.描述: 编写一个方法,接受两个BigDecimal类型的参数,返回它们的和。
2.描述: 编写一个方法,接受两个BigDecimal类型的参数,返回它们的差。
3.描述: 编写一个方法,接受两个BigDecimal类型的参数,返回它们的乘积。
4.描述: 编写一个方法,接受两个BigDecimal类型的参数,返回它们的商。
5.描述: 编写一个方法,接受一个BigDecimal类型的金额和一个整数倍数,返回金额乘以倍数后的结果。
1.描述: 编写一个方法,接受一个BigDecimal类型的金额和一个RoundingMode枚举值,返回四舍五入后的金额。
2.描述: 编写一个方法,接受一个BigDecimal类型的金额,保留两位小数,并使用HALF_UP模式进行舍入。
3.描述: 编写一个方法,接受一个BigDecimal类型的金额,保留四位小数,并使用HALF_DOWN模式进行舍入。
4.描述: 编写一个方法,接受一个BigDecimal类型的金额,保留三位小数,并使用UP模式进行舍入。
5.描述: 编写一个方法,接受一个BigDecimal类型的金额,保留一位小数,并使用DOWN模式进行舍入。
1.描述: 编写一个方法,接受一个BigDecimal类型的金额和一个Locale对象,返回格式化的货币字符串。
2.描述: 编写一个方法,接受一个BigDecimal类型的金额,返回美国格式的货币字符串(例如:$1,234.56)。
3.描述: 编写一个方法,接受一个BigDecimal类型的金额,返回欧元格式的货币字符串(例如:€1.234,56)。
4.描述: 编写一个方法,接受一个BigDecimal类型的金额,返回日本格式的货币字符串(例如:¥1,234)。
5.描述: 编写一个方法,接受一个BigDecimal类型的金额,返回中国格式的货币字符串(例如:¥1,234.56)。
6.编码、函数等命名符合规范
7. 核心功能函数添加注释
package com.bwie;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.Locale;
/**
* @author 军哥
* @version 1.0
* @description: TODO
* @date 2025/6/24 18:04
*/
public class TestBigDecimal {
// add = 加法
public BigDecimal add(BigDecimal a, BigDecimal b) {
return a.add(b);
}
// sub = 减法
public BigDecimal subtract(BigDecimal a, BigDecimal b) {
return a.subtract(b);
}
// mul = 乘法
public BigDecimal multiply(BigDecimal a, BigDecimal b) {
return a.multiply(b);
}
// div = 除法
public BigDecimal divide(BigDecimal a, BigDecimal b) {
return a.divide(b);
}
public BigDecimal mulToInteger(BigDecimal a, Integer b) {
//return a.multiply(new BigDecimal(b));
BigDecimal bigDecimal = new BigDecimal(b);
return a.multiply(bigDecimal);
}
@Test
public void test1() {
//1.描述: 编写一个方法,接受两个BigDecimal类型的参数,返回它们的和。
BigDecimal a = new BigDecimal("10.0");
BigDecimal b = new BigDecimal("20.0");
System.out.println("a = " + a + ", b = " + b);
BigDecimal sum = add(a, b);
System.out.println("sum = " + sum);
//2.描述: 编写一个方法,接受两个BigDecimal类型的参数,返回它们的差。
BigDecimal difference = subtract(a, b);
System.out.println("difference = " + difference);
//3.描述: 编写一个方法,接受两个BigDecimal类型的参数,返回它们的乘积。
BigDecimal multiply = multiply(a, b);
System.out.println("multiply = " + multiply);
//4.描述: 编写一个方法,接受两个BigDecimal类型的参数,返回它们的商。
BigDecimal divide = divide(a, b);
System.out.println("divide = " + divide);
//5.描述: 编写一个方法,接受一个BigDecimal类型的金额和一个整数倍数,返回金额乘以倍数后的结果。
Integer c = 2;
BigDecimal mulToInteger = mulToInteger(a, c);
System.out.println("mulToInteger = " + mulToInteger);
}
@Test
public void test2() {
BigDecimal number = new BigDecimal("3.1415926");
System.out.println("number = " + number);
//1.描述: 编写一个方法,接受一个BigDecimal类型的金额和一个RoundingMode枚举值,返回四舍五入后的金额。
BigDecimal a = number.setScale(2, RoundingMode.HALF_UP);
System.out.println("四舍五入: a = " + a);
//2.描述: 编写一个方法,接受一个BigDecimal类型的金额,保留两位小数,并使用HALF_UP模式进行舍入。
BigDecimal b = number.setScale(2, RoundingMode.HALF_UP);
System.out.println("HALF_UP: b = " + b);
//3.描述: 编写一个方法,接受一个BigDecimal类型的金额,保留四位小数,并使用HALF_DOWN模式进行舍入。
BigDecimal c = number.setScale(4, RoundingMode.HALF_DOWN);
System.out.println("HALF_DOWN: c = " + c);
//4.描述: 编写一个方法,接受一个BigDecimal类型的金额,保留三位小数,并使用UP模式进行舍入。
BigDecimal d = number.setScale(3, RoundingMode.UP);
System.out.println("UP: d = " + d);
//5.描述: 编写一个方法,接受一个BigDecimal类型的金额,保留一位小数,并使用DOWN模式进行舍入。
BigDecimal e = number.setScale(1, RoundingMode.DOWN);
System.out.println("DOWN: e = " + e);
}
String getLocaleMoney(BigDecimal number) {
//1.描述: 编写一个方法,接受一个BigDecimal类型的金额和一个Locale对象,返回格式化的货币字符串。
NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.getDefault());
String format = numberFormat.format(number);
System.out.println("format = " + format);
return format;
}
/**
* @description 格式化美元格式
* @params [number]
* @return java.lang.String
* @author 军哥
* @date 2025/6/24 18:40
*/
String getUsLocaleMoney(BigDecimal number) {
//2.描述: 编写一个方法,接受一个BigDecimal类型的金额,返回美国格式的货币字符串(例如:$1,234.56)。
NumberFormat numberFormat1 = NumberFormat.getCurrencyInstance(Locale.US);
String format1 = numberFormat1.format(number);
System.out.println("美国格式 = " + format1);
return format1;
}
String getUrLocaleMoney(BigDecimal number) {
//3.描述: 编写一个方法,接受一个BigDecimal类型的金额,返回欧元格式的货币字符串(例如:€1.234,56)。
NumberFormat numberFormat2 = NumberFormat.getCurrencyInstance(Locale.GERMANY);
String format2 = numberFormat2.format(number);
System.out.println("欧元格式 = " + format2);
return format2;
}
String getJpLocaleMoney(BigDecimal number) {
//4.描述: 编写一个方法,接受一个BigDecimal类型的金额,返回日本格式的货币字符串(例如:¥1,234)。
NumberFormat numberFormat3 = NumberFormat.getCurrencyInstance(Locale.JAPAN);
String format3 = numberFormat3.format(number);
System.out.println("日本格式 = " + format3);
return format3;
}
String getCnLocaleMoney(BigDecimal number) {
//描述: 编写一个方法,接受一个BigDecimal类型的金额,返回中国格式的货币字符串(例如:¥1,234.56)
NumberFormat numberFormat4 = NumberFormat.getCurrencyInstance(Locale.CHINA);
String format4 = numberFormat4.format(number);
System.out.println("中国格式 = " + format4);
return format4;
}
@Test
public void test3() {
BigDecimal number = new BigDecimal("3.1415926");
System.out.println("number = " + number);
// 默认
System.out.println(getLocaleMoney(number));
// 美元
System.out.println(getUsLocaleMoney(number));
// 欧元
System.out.println(getUrLocaleMoney(number));
// 日本
System.out.println(getJpLocaleMoney(number));
// 中国
System.out.println(getCnLocaleMoney(number));
}
}