| A branch of physics used to be taught a long time ago called "numerical analysis" to deal with this issue. We even used to be careful about the difference between 'precise and exact'. Pi = acos(0) is absolutely exact. But computer don't know about symbolic calculus. So to put the value in a register we used tricks. Pi as a the converging value at the infinite of the Taylor development is awesome. But computer don't know about infinite. 3.1415926535897932384626433832795028841971 is precise.... it has a lot of digit and people loves that. In ana num 3.15159 +- 0.00001 is exact. It bounds your result. Hence you can estimate your error and its propagation. Because we thought humans were smart we thought that 3.14159 would be so meaningful people would understand that a constant should be considered to be exact with the implicit meaning that 9 was the last significant digit and people would be wise to use upper and lower bounds to estimates their results. Then Computer Science was taught in university. People not understanding why they had to study math and physics to simply program 2 + 2 and thought, stop bothering us. We just compute TVA we don't send a rocket to mars. Why learn boring math (integration, derivation, Newton's methods for approximation, Taylos's development, Cauchy Suites, condition of converging Suites, Integration in the complex field to compute generalized integrals, simplex, LU/RU matrices ....) Yes people loves recurrence. They cannot apply the reasoning to simple maths series. And that's how we have funny stuff like a lot of coder not understanding why : 1.198 * 10.10
12.099799999999998
Yes ... why are computers' maths so odd. What can we do about it?Having a look at HP Saturn opcode makes you wonder if the lack of solution is because it does not exists or because people forgot.
http://www.hpcalc.org/details.php?id=1693 |