[ 
https://issues.apache.org/jira/browse/SPARK-2479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14073430#comment-14073430
 ] 

Apache Spark commented on SPARK-2479:
-------------------------------------

User 'mengxr' has created a pull request for this issue:
https://github.com/apache/spark/pull/1576

> Comparing floating-point numbers using relative error in UnitTests
> ------------------------------------------------------------------
>
>                 Key: SPARK-2479
>                 URL: https://issues.apache.org/jira/browse/SPARK-2479
>             Project: Spark
>          Issue Type: Improvement
>            Reporter: DB Tsai
>            Assignee: DB Tsai
>
> Floating point math is not exact, and most floating-point numbers end up 
> being slightly imprecise due to rounding errors. Simple values like 0.1 
> cannot be precisely represented using binary floating point numbers, and the 
> limited precision of floating point numbers means that slight changes in the 
> order of operations or the precision of intermediates can change the result. 
> That means that comparing two floats to see if they are equal is usually not 
> what we want. As long as this imprecision stays small, it can usually be 
> ignored.
> See the following famous article for detail.
> http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
> For example:
>       float a = 0.15 + 0.15
>       float b = 0.1 + 0.2
>       if(a == b) // can be false!
>       if(a >= b) // can also be false!



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to