kyunseop.bae at gmail.com
2008-Sep-08 13:25 UTC
[Rd] (PR#12742) Different result with different order of binding
Thank you for the prompt reply. Do you know why does MS-Excel give result that I expected? Thanks, Kyun-Seop BAE Email: kyunseop.bae at gmail.com -----Original Message----- From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk] Sent: Monday, September 08, 2008 1:53 AM To: kyunseop.bae at gmail.com Cc: R-bugs at r-project.org Subject: Re: [Rd] (PR#12742) Different result with different order of binding FAQ 7.31 strikes again. This is expected: you cannot do exact arithmetic on a binary computer if some of the quantities involved are not binary fractions (e.g. 1.3) See also the warning in ?`==`: identical() is equally inappropiate for computed numerical quantities. On Mon, 8 Sep 2008, kyunseop.bae at gmail.com wrote:> Full_Name: Kyun-Seop Bae > Version: 2.7.2 > OS: MS-Windows XP SP2 > Submission from: (NULL) (148.168.40.4) > > > # Script that I used > > rm(list=objects()) > objects() > > WT <- 91 > AGE <- 41 > SCR <- 1.3 > > CCL1 <- (140-AGE) * WT / (72 * SCR) > CCL2 <- (140-AGE) * WT / 72 / SCR > > CCL1 > CCL2 > > identical(CCL1, CCL2) > identical(CCL1, 96.25) > identical(CCL2, 96.25) > > CCL1*10 + 0.5 > CCL2*10 + 0.5 > > floor(CCL1*10 + 0.5) > floor(CCL2*10 + 0.5) > > as.integer(CCL1*10 + 0.5) > as.integer(CCL2*10 + 0.5) > > > # Same with multiplied WT > # Same in S-Plus Enterprise Developer Version 7.0.6 for Microsoft Windows:> 2005 > # But these are accurate in MS-Excel.Unlikely, more likely you don't have identical() to test bit-level equality. -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595