Hello, I made a mistake today on simple counting in R, that almost got me into trouble. After trying multiple times, I finally figured out it's rounding issue in R. For exmaple, when I just simply type:> (6.9-6.3) > 0.6[1] TRUE 6.9-6.3 should be 0.6 exactly, but R thinks that it's greater than 0.6!! Similarly, R thinks 5.6-5.5 is smaller than 0.1:> (5.6-5.5) < 0.1[1] TRUE Why is the above happening? This rounding issue seems to be small, but this could cause serious problem in real world. Can anyone shed a light on how to avoid the issue? Thanks, Yi
On 2020-09-04 00:46, array chip via R-help wrote:> Hello, > > I made a mistake today on simple counting in R, that almost got me into trouble. After trying multiple times, I finally figured out it's rounding issue in R. > > For exmaple, when I just simply type: > >> (6.9-6.3) > 0.6 > [1] TRUE > > 6.9-6.3 should be 0.6 exactly, but R thinks that it's greater than 0.6!! > > Similarly, R thinks 5.6-5.5 is smaller than 0.1: > >> (5.6-5.5) < 0.1 > [1] TRUE > > Why is the above happening? This rounding issue seems to be small, but this could cause serious problem in real world. > > Can anyone shed a light on how to avoid the issue?Maybe learn a little bit about digital arithmetic? ---JRG> Thanks, > > Yi > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
FAQ 7.31 On Fri, Sep 4, 2020 at 12:47 AM array chip via R-help <r-help at r-project.org> wrote:> > Hello, > > I made a mistake today on simple counting in R, that almost got me into trouble. After trying multiple times, I finally figured out it's rounding issue in R. > > For exmaple, when I just simply type: > > > (6.9-6.3) > 0.6 > [1] TRUE > > 6.9-6.3 should be 0.6 exactly, but R thinks that it's greater than 0.6!! > > Similarly, R thinks 5.6-5.5 is smaller than 0.1: > > > (5.6-5.5) < 0.1 > [1] TRUE > > Why is the above happening? This rounding issue seems to be small, but this could cause serious problem in real world. > > Can anyone shed a light on how to avoid the issue? > > Thanks, > > Yi > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
Thanks Richard. Got it now... On Thursday, September 3, 2020, 10:12:36 PM PDT, Richard M. Heiberger <rmh at temple.edu> wrote: FAQ 7.31 On Fri, Sep 4, 2020 at 12:47 AM array chip via R-help <r-help at r-project.org> wrote:> > Hello, > > I made a mistake today on simple counting in R, that almost got me into trouble. After trying multiple times, I finally figured out it's rounding issue in R. > > For exmaple, when I just simply type: > > > (6.9-6.3) > 0.6 > [1] TRUE > > 6.9-6.3 should be 0.6 exactly, but R thinks that it's greater than 0.6!! > > Similarly, R thinks 5.6-5.5 is smaller than 0.1: > > > (5.6-5.5) < 0.1 > [1] TRUE > > Why is the above happening? This rounding issue seems to be small, but this could cause serious problem in real world. > > Can anyone shed a light on how to avoid the issue? > > Thanks, > > Yi> > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.