[R] Bug or just a problem with the computer precision?

Peter Dalgaard P.Dalgaard at biostat.ku.dk
Thu Oct 4 15:26:44 CEST 2007


jim holtman wrote:
> You are getting round-off problems (I think it is FAQ 7.33).  Use
> characters since thats what the numbers really are. Convert the
> characters and then use substring.  Also sprintf works:
>
>   
>> sprintf("%.2f", A*100)
>>     
> [1] "470990.00"
>   
>> sprintf("%.2f", A)
>>     
> [1] "4709.90"
>   
>
>   
If sprintf works, so does round(A,2) and I suspect there was a reason
not to use that (what is the result for 4709.8967 supposed to be?). 

It might be better to use a small amount of fuzz:

floor(A *100+1e-10)/100

Or, as indicated: If these are really strings, treat them as such:

> A<-"4709.9000"
> substr(A,1,7)
[1] "4709.90"



> On 10/4/07, Renger van Nieuwkoop <renger at ecoplan.ch> wrote:
>   
>> Hi
>>
>> I have the following problem: I have a lot of numbers that identify
>> import goods according to the Harmonised System (8 numbers in two groups
>> with a dot in between). I want to move to the
>> 6 numbers (4 numbers, dot, two numbers). My trick to do this works for
>> all the numbers in the Harmonised Sytem but not for this one:
>>
>> A<-4709.9000
>> (A<-floor(100 * A ) / 100) = 4709.89
>>
>> But this has to be 4709.90
>>
>> If I do this in Excel it works fine...Any idea how to make sure that I
>> get 4709.90 and not 4709.89?
>>
>> Renger
>>
>>
>>
>> _________________________________________________
>>
>> ECOPLAN
>> Forschung und Beratung in Wirtschaft und Politik
>> Economic Research and Policy Consultancy
>>
>> Thunstrasse 22 / CH-3005 Berne (Switzerland)
>> Phone: +41 31 356 61 61 / Fax: +41 31 356 61 60
>> mailto:renger at ecoplan.ch  / http://www.ecoplan.ch>
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> 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.
>>
>>     
>
>
>   


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907



More information about the R-help mailing list