my 2¢

the result is absolutely correct;
both Henry Rich and Devon McCormick showed why

If you’re dealing with values with two decimal places
everywhere, either apply rounding after each operation,
or (better imho) work on 100-fold values and divide by
100 in the very last step of your computation.

you could also define your own data structure but then
you’re better off using x: in the first place.

Either you want to deal with rationals (x:) or with
whole numbers (algorithm&.(100&*)).


Am 15.05.20 um 17:20 schrieb 'Bo Jacoby' via Programming:
  The expression
    4.57+.(4.34+.4.44)


should evaluate like this
    4.34+.4.44
0.02

    4.57+.0.02
0.01



but it does evaluate to
     5.39568e_12


which is a useless and incorrect result.
=  is tolerant, why isn't   +.    ?
Thanks.
Bo.    Den fredag den 15. maj 2020 16.24.10 CEST skrev Henry Rich 
<[email protected]>:
What's wrong with it?

     0j19 ": 4.57 4.34 4.44
4.5700000000000002842 4.3399999999999998579 4.4400000000000003908

Henry Rich

On 5/15/2020 10:17 AM, 'Bo Jacoby' via Programming wrote:
      +./4.57 4.34 4.44
5.39568e_12

NB. this was not the correct answer.  A bug?

      +./x:4.57 4.34 4.44

1r100

NB. this was a work-around
Thanks!
Bo.




----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm



--
----------------------
mail written using NEO
neo-layout.org

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to