用java bigdecimal实现 =IFERROR(((F2/E2*0.1+G2/E2*0.15+H2/E2*0.5-0.75)/9*100)*E2,0)
时间: 2023-10-01 20:03:41 浏览: 77
免费开源-【Java学习+面试指南】部分内容大部分是Java程序员所需要掌握的核心知识
可以使用以下代码来实现:
```
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal f2 = new BigDecimal("100");
BigDecimal e2 = new BigDecimal("50");
BigDecimal g2 = new BigDecimal("200");
BigDecimal h2 = new BigDecimal("300");
BigDecimal result;
try {
result = (((f2.divide(e2, 10, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal("0.1")))
.add((g2.divide(e2, 10, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal("0.15")))
.add((h2.divide(e2, 10, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal("0.5")))
.subtract(new BigDecimal("0.75")))
.divide(new BigDecimal("9"), 10, BigDecimal.ROUND_HALF_UP)
.multiply(e2)
.multiply(new BigDecimal("100"));
} catch (ArithmeticException e) {
result = new BigDecimal("0");
}
System.out.println(result);
}
}
```
其中,使用 `BigDecimal` 来进行精确计算,使用 `try-catch` 块来捕捉除数为零的异常,实现 `IFERROR` 的功能。
阅读全文