使用java bigdecimal 实现 =IFERROR((C8/G8-1)/9*0.1+(D8/G8-1)/9*0.2+(E8/G8-1)/9*0.2+(F8/G8-1)/9*0.5,"")
时间: 2023-11-03 12:04:34 浏览: 127
可以使用Java的BigDecimal类来实现这个公式。首先需要将所有的数值转换为BigDecimal类型,并使用try-catch语句捕获除数为0的异常。
代码示例:
```
import java.math.BigDecimal;
public class Calculation {
public static void main(String[] args) {
// 定义变量
BigDecimal c8 = new BigDecimal("10");
BigDecimal d8 = new BigDecimal("20");
BigDecimal e8 = new BigDecimal("30");
BigDecimal f8 = new BigDecimal("40");
BigDecimal g8 = new BigDecimal("5");
try {
// 计算公式
BigDecimal result = BigDecimal.ZERO;
BigDecimal oneNinth = new BigDecimal("0.1111111111"); // 1/9
BigDecimal tenPercent = new BigDecimal("0.1");
BigDecimal twentyPercent = new BigDecimal("0.2");
BigDecimal fiftyPercent = new BigDecimal("0.5");
if (g8.compareTo(BigDecimal.ZERO) != 0) {
BigDecimal part1 = c8.divide(g8, 10, BigDecimal.ROUND_HALF_UP).subtract(BigDecimal.ONE);
BigDecimal part2 = d8.divide(g8, 10, BigDecimal.ROUND_HALF_UP).subtract(BigDecimal.ONE);
BigDecimal part3 = e8.divide(g8, 10, BigDecimal.ROUND_HALF_UP).subtract(BigDecimal.ONE);
BigDecimal part4 = f8.divide(g8, 10, BigDecimal.ROUND_HALF_UP).subtract(BigDecimal.ONE);
result = part1.multiply(tenPercent).add(part2.multiply(twentyPercent)).add(part3.multiply(twentyPercent)).add(part4.multiply(fiftyPercent));
result = result.multiply(oneNinth);
}
System.out.println(result.toString());
} catch (ArithmeticException e) {
System.out.println("");
}
}
}
```
上述代码中,我们使用了BigDecimal的divide方法来进行除法运算,并设置了小数点后保留10位,并且使用ROUND_HALF_UP进行四舍五入。如果除数为0,将会抛出ArithmeticException异常,我们在catch语句中输出空字符串。
阅读全文