I am facing simple issue in below program. In below code I am just subtracting numbers and expected output is "89.50" but it is printing 90. May I know the reason and help me with code to get expected output.
public class BigDecimal_Prb {
public static void main(String[] args) throws java.lang.Exception
{
MathContext mc = new MathContext(2);
List<BigDecimal> list = new ArrayList<BigDecimal>();
list.add(BigDecimal.valueOf(30));
list.add(BigDecimal.valueOf(120.00));
BigDecimal [] nums = (BigDecimal[]) list.toArray(new BigDecimal[0]);
BigDecimal reaminingAmt=nums[1].subtract(nums[0], mc);
BigDecimal dedAmt=new BigDecimal(0.5);
BigDecimal ans = reaminingAmt.subtract(dedAmt,mc);
System.out.println(ans);
}
}