I\'m having slight difficulty in performing a calculation in Java. Here is what I\'m trying to do -
((0.053800 * (500000/1000)) + 4) * 0.85
In m
The following is a much better approximation, which results in the same value in this case:
import java.math.BigDecimal;
import java.math.MathContext;
public class Test {
public static void main(String[] args) {
//double d = ((0.053800 * (500000/1000)) + 4) * 0.85;
BigDecimal d = ((new BigDecimal(0.053800).multiply(new BigDecimal(500000).divide(new BigDecimal(1000)))).add(new BigDecimal(4))).multiply(new BigDecimal(0.85));
System.out.println(d.round(MathContext.DECIMAL32));
}
}
See my answer here for an explanation of what's going on.