我正在尝试获取产品的税值(我作为静态值传递的税百分比(
使用大十进制,但得到下面的错误是我的代码
double dis,amount,s;
BigDecimal taxprice;
List<WebElement> firstproductSubtotalprice = getDriver().findElements(By.xpath("//p[@class='m-order-detail-item-name']/span"));
BigDecimal firstproductSubtotalpricevalue = null;
for (WebElement webElement : firstproductSubtotalprice) {
String priceText = webElement.getText();
if (priceText != null && priceText.length() > 0) {
firstproductSubtotalpricevalue = new BigDecimal(priceText.replace('$', ' ').trim());
System.out.println("The First Product Subtotal Price is: "+ firstproductSubtotalpricevalue);
break;
}
}
List<WebElement> firstproductTaxprice = getDriver().findElements(By.xpath("//span[contains(text(), 'Tax')]/following-sibling::span[1]"));
BigDecimal firstproductTaxpriceValue = null;
for (WebElement webElement : firstproductTaxprice) {
String priceText = webElement.getText();
if (priceText != null && priceText.length() > 0) {
firstproductTaxpriceValue = new BigDecimal(priceText.replace('$', ' ').trim());
System.out.println("The First Product Tax Price is: "+ firstproductTaxpriceValue);
break;
}
}
taxprice = firstproductSubtotalpricevalue;
dis=10;
s=100-dis;
BigDecimal c= firstproductTaxpriceValue;
BigDecimal a = taxprice.multiply(new BigDecimal(s));
BigDecimal b = a.divide(a, 100);
System.out.println(a+"/"+b+" = "+c);
使用上面的代码,我想获取税值,并想与第一个产品税价值进行比较, 如果税额等于第一个产品税价值,那么我的测试用例即使没有失败,也通过。
请帮我获取税值
除法时不提供舍入模式。
以下是该方法的声明:
public BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
试试这个:
BigDecimal b = a.divide(new BigDecimal(100),2,RoundingMode.CEILING);
其中第一个参数,new BigDecimal(100)
是您要除以的值
第二个参数,2
是小数位数或小数位数
第三个参数,RoundingMode.CEILING
是您希望以舍入结果的方式。
你在代码末尾执行BigDecimal b = a.divide(a, 100)
。100
在这里不是有效的输入。
使用以下方法之一:
0 (ROUND_UP)
1 (ROUND_DOWN)
2 (ROUND_CEILING)
3 (ROUND_FLOOR)
4 (ROUND_HALF_UP)
5 (ROUND_HALF_DOWN)
6 (ROUND_HALF_EVEN)
7 (ROUND_UNNECESSARY)