[ https://issues.apache.org/jira/browse/SPARK-2479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xiangrui Meng resolved SPARK-2479. ---------------------------------- Resolution: Fixed Fix Version/s: 1.1.0 Issue resolved by pull request 1425 [https://github.com/apache/spark/pull/1425] > 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 > Fix For: 1.1.0 > > > 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)