因为如果浮点型小数直接计算,会出现误差,然后需要BigDecimal方法将其改为字符串,然后记录在BigDecimal,然后计算输出
/*
如果需要精确运算,需要BigDecimal方法
*/
import java.math.BigDecimal;
public class Test4 {
public static void main(String[] args) {
// 定义变量
byte byteVar = 10;
char charVar = 'a';
float floatVar = 5.2f;
double doubleVar = 10.0;
// 将变量转换为BigDecimal
BigDecimal a = new BigDecimal(byteVar);
BigDecimal b = new BigDecimal((int) charVar); // 将char转换为int
//下面2个是错的。因为转浮点型依旧有误差,需要转字符串然后运算
// BigDecimal c = new BigDecimal(floatVar);
// BigDecimal d = new BigDecimal(doubleVar);
BigDecimal c = new BigDecimal(Float.toString(floatVar)); // 将 float 转换为字符串
BigDecimal d = new BigDecimal(Double.toString(doubleVar)); // 将 double 转换为字符串
// 计算相加结果
BigDecimal result = a.add(b).add(c).add(d);
// 输出结果
System.out.println("相加结果: " + result);
}
}