I agree that technically 0.295 could be rounded to 0.29, but I think that most people (programmer or non-programmer) will expect that rounding the quotient (295/1000) to 2 decimal places is 0.30

I also double checked with a pocket calculator.

Joey K Tuttle wrote:
It would be a shame to slow down ": ... consider

   0j20 ": 0.295 0.2995
0.29499999999999998446 0.29949999999999998845

I suppose that 8!:x implements the "standard rule" that
rounding a number ending (but not really in this case) 5
depends on whether the prior digit is odd or even. Much
of this seems arbitrary at best.

- joey


At 8:45 AM -0700 3/19/07, Roger Hui wrote:
The difference is that the dyad ": depends on the
C library routines whereas 8!:x do the programming
themselves and take more care.  I'll look into it.
It is likely that a fix will make ": slower.

Thanks for the report.



----- Original Message -----
From: bill lam <[EMAIL PROTECTED]>
Date: Sunday, March 18, 2007 11:14 pm
Subject: [Jprogramming] dyad ": rounding error

 On both J504 and J601, dyad ": sometimes does not round properly
 on some
 numbers, eg.
    0j2 ":  0.295
 0.29
    0j3 ":  0.2995
 0.299

 incidentally 8!:x family of J601 does not have this problem,
    '0.2' (8!:0) 0.295
 +----+
 |0.30|
 +----+
    '0.2' (8!:1) 0.295
 +----+
 |0.30|
 +----+
    '0.2' (8!:2) 0.295
 0.30
    '0.3' (8!:2) 0.2995
 0.300
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

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



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

Reply via email to