First, I think you are misusing numbers for what are probably character strings. But with numbers,
> A <- 4709.9000 > sprintf("%7.2f", A) [1] "4709.90" R will never print a single number as 4709.90: it will drop the trailing zero. With strings: > A <- "4709.9000" > substr(A, 1, 7) [1] "4709.90" On Thu, 4 Oct 2007, Renger van Nieuwkoop 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 No, as 4709.9000 is not the exact number represented in R. Consider > A <- 4709.9000 > round(A, 2) [1] 4709.9 > 100*A - 470990 [1] -5.820766e-11 so A is represented a number slightly less than 4709.9000 > If I do this in Excel it works fine...Any idea how to make sure that I > get 4709.90 and not 4709.89? Then Excel would appear to have a different internal representation (or a bug). -- Brian D. Ripley, [EMAIL PROTECTED] 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 ______________________________________________ R-help@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.