Search code examples
javadouble

Java Double Multiplication explanation?


I recently tested something out that I heard using the following code

public static void main(String[] args) { double x = 4.35 * 100; System.out.println(x); }.

I am interested as to why this produces 434.99999999999994 rather than 435.0 . Thanks


Solution

  • When you type:

    double x = 4.35;
    

    x is not stored as-is. It is stored in a approaching form (probably 4.349999999 in this case).

    If you want exact result, please use BigDecimal.

    You can learn about the accuracy problems of floating-point technology.