BigDecimal initBigDecimal = new BigDecimal(1); BigDecimal residualvaluerate = assetstock.getResidualvaluerate();//预计净残值率 Long servicemonth = assetstock.getServicemonth(); //预计使用年限(月份) 年折旧率=(1-预计净残值率)/预计使用年限×100% 使用java 代码 BigDecimal 用这些参数算出年折旧率
时间: 2024-02-23 19:00:21 浏览: 20
可以使用以下代码来计算年折旧率:
```
BigDecimal residualvaluerate = assetstock.getResidualvaluerate();
Long servicemonth = assetstock.getServicemonth();
// 计算年折旧率
BigDecimal yearDepreciationRate = BigDecimal.ONE
.subtract(residualvaluerate)
.divide(BigDecimal.valueOf(servicemonth), 4, RoundingMode.HALF_UP)
.multiply(BigDecimal.valueOf(12))
.setScale(2, RoundingMode.HALF_UP);
System.out.println("年折旧率为:" + yearDepreciationRate);
```
其中,`BigDecimal.ONE` 表示初始值为 1,`subtract` 方法用于计算 `1-预计净残值率`,`divide` 方法用于计算 `(1-预计净残值率)/预计使用年限`,`.multiply(BigDecimal.valueOf(12))` 用于将月折旧率转换为年折旧率,`.setScale(2, RoundingMode.HALF_UP)` 用于保留两位小数并进行四舍五入。最后将结果存储在 `yearDepreciationRate` 变量中。
相关问题
BigDecimal initBigDecimal = new BigDecimal(1); BigDecimal residualvaluerate = assetstock.getResidualvaluerate();//预计净残值率 Long servicemonth = assetstock.getServicemonth(); //预计使用年限(月份) BigDecimal notaxamount = assetstock.getNotaxamount(); 固定资产原价 年折旧率=(1-预计净残值率)/预计使用年限×100% 月折旧率=年折旧率÷12 月折旧额=固定资产原价×月折旧率 使用java 代码 BigDecimal 用这些参数算出年折旧率、月折旧率、月折旧额
好的,根据您提供的参数,可以使用以下代码计算年折旧率、月折旧率和月折旧额:
```
BigDecimal residualvaluerate = assetstock.getResidualvaluerate();
Long servicemonth = assetstock.getServicemonth();
BigDecimal notaxamount = assetstock.getNotaxamount();
// 计算年折旧率
BigDecimal yearDepreciationRate = BigDecimal.ONE.subtract(residualvaluerate)
.divide(BigDecimal.valueOf(servicemonth), 4, RoundingMode.HALF_UP)
.multiply(BigDecimal.valueOf(100));
// 计算月折旧率
BigDecimal monthDepreciationRate = yearDepreciationRate.divide(BigDecimal.valueOf(12), 4, RoundingMode.HALF_UP);
// 计算月折旧额
BigDecimal monthDepreciationAmount = notaxamount.multiply(monthDepreciationRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
```
其中,`BigDecimal.ONE` 表示 `1`,`divide` 表示除法运算,`multiply` 表示乘法运算,`setScale` 表示设置小数点保留位数,`RoundingMode.HALF_UP` 表示四舍五入。
BigDecimal bigDecimal = new BigDecimal("19.1123999999999");报错
这个错误是因为BigDecimal类型不能直接转换为Integer或Long类型。如果需要将BigDecimal类型转换为Integer或Long类型,可以使用intValue()或longValue()方法。如果需要保留小数位数,可以使用setScale()方法。以下是一个示例代码:
```java
BigDecimal bigDecimal = new BigDecimal("19.1123999999999");
int intValue = bigDecimal.intValue(); // 转换为整型
long longValue = bigDecimal.longValue(); // 转换为长整型
BigDecimal newBigDecimal = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP); // 保留两位小数
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)