|
If you are referring to the1.2000000000000002E-8 where you have an
actual math error, it is because double and float math don't work properly, for
whatever reason. If you switch to using BigDecimal then you are able to
obtain a "better" answer.
ie:
public static void
main(String[] args) {
Double op1 = new
Double(12.0),
op2 = new Double(1E-9), res = new Double(op1.doubleValue() * op2.doubleValue()); System.out.println("op1: " +
op1);
System.out.println("op2: " + op2); System.out.println("res: " + res); BigDecimal bd1 = new
BigDecimal("12.0");
BigDecimal bd2 = new BigDecimal("1E-9"); BigDecimal res2 = bd1.multiply(bd2); System.out.println("bd1: " +
bd1);
System.out.println("bd2: " + bd2); System.out.println("res2: " + res2); } results in:
op1: 12.0
op2: 1.0E-9 res: 1.2000000000000002E-8 bd1: 12.0 bd2: 0.000000001 res2: 0.0000000120 To change your JDJList options, please visit: http://www.sys-con.com/java/list.cfm |
- [jdjlist] Re: Double multiplication MarkRuscitto
- [jdjlist] Re: Double multiplication Kilkenny, Rory
- [jdjlist] Re: Double multiplication Roger Glover
- [jdjlist] Re: Double multiplication MarkRuscitto
- [jdjlist] Re: Double multiplication Blair Wyman
- [jdjlist] Re: Double multiplication Joseph Ottinger
- [jdjlist] Re: Double multiplication Mark E. Zawadzki
- [jdjlist] Re: Double multiplication Tomm Carr
- [jdjlist] Re: Double multiplication Andy Bentley
- [jdjlist] Re: Double multiplication Scot Mcphee
- [jdjlist] Re: Double multiplication Jeff Fisher
- [jdjlist] Re: Double multiplication Joseph Ottinger
