Dear all,I want to convert a long integer to a string, and for example, 100000000 I used as.character(1000000000) e.g, and it gives me back 1e+???. What I want is a exact form, not exponential form. Any ideas how to do it? Thank you very much. Regards, Dajiang [[alternative HTML version deleted]]
Try this: sprintf("%d", 1000000000) On Sat, Aug 22, 2009 at 8:13 PM, Dajiang J. Liu <dajiang.liu@gmail.com>wrote:> Dear all,I want to convert a long integer to a string, and for example, > 100000000 > I used as.character(1000000000) e.g, and it gives me back 1e+???. What I > want is a exact form, not exponential form. Any ideas how to do it? Thank > you very much. > Regards, > Dajiang > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
On Aug 22, 2009, at 6:13 PM, Dajiang J. Liu wrote:> Dear all,I want to convert a long integer to a string, and for > example, > 100000000 > I used as.character(1000000000) e.g, and it gives me back 1e+???. > What I > want is a exact form, not exponential form. Any ideas how to do it? > ThankThe numeric ("double") type is not "exact" in R. (Read the FAQ) You can specify an integer by appending an "L" but that will limit the magnitude. > 1000000000L [1] 1000000000 > 10000000000L [1] 1e+10 Warning message: non-integer value 10000000000 qualified with L; using numeric value You are supposed to have control of the length of displayed decimal numbers with the option for "digits" but it doesn't work for me: > options("digits" = 12) > print(1000000000) [1] 1e+09 > 1000000000 [1] 1e+09 -- David Winsemius
Its not being stored as an integer. Its being stored as a double. If it were stored as an integer you would not get the e:> as.character(1000000000L)[1] "1000000000"> as.character(as.integer(1000000000))[1] "1000000000" On Sat, Aug 22, 2009 at 7:13 PM, Dajiang J. Liu<dajiang.liu at gmail.com> wrote:> Dear all,I want to convert a long integer to a string, and for example, > 100000000 > I used as.character(1000000000) e.g, and it gives me back 1e+???. What I > want is a exact form, not exponential form. Any ideas how to do it? Thank > you very much. > Regards, > Dajiang > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > 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. >