News for hackers. Stuff that matters.
Re:Diagnosing a Linux-only unit test failure by philh on Monday October 09, 2017 @12:01PM (#15434992)
It's not a C# thing, it's a floating-point thing. Two numbers which mathematically "should" be equal, might not be due to rounding errors. (In python, 0.15 + 0.15 != 0.1 + 0.2.) So it's risky to compare them with ==, sometimes you'll get the result you expect (and sometimes you can be confident of that) but sometimes you won't. If you can't be sure, you should compare that they're the same within some threshold, but that has pitfalls as well.

(I feel a little silly saying "it's not a language thing" and then "in python", but there may (or may not) be various implementation details which other languages might use to get a different result.)

Re:Diagnosing a Linux-only unit test failure by smitherfield on Monday October 09, 2017 @03:41PM (#15436799)
`0.1 + 0.2 != 0.3` is a property of all (base-2) floating-point arithmetic, no matter the precision or programming language.
Re:Diagnosing a Linux-only unit test failure by estomagordo on Tuesday October 10, 2017 @07:13AM (#15440855)
Well yeah, but this was 0.1 + 0.2 != 0.15 + 0.15, and there's no obvious reason why 0.15 + 0.15 = 0.3 imo.
Re:Diagnosing a Linux-only unit test failure by philh on Tuesday October 10, 2017 @07:15AM (#15440859)
I interpreted their comment as "here's an example that will always work", and I appreciated it in that light.