Thank you, incorporated now.
As the help page says, %a is a C99 feature that is not available on
all platforms. The *printf in msvcrt.dll is a long way from
C99-compatible (it dates from ca 10 years ago, but later VC runtimes
are also incompatible). Recently MinGW has attempted to supplement
it, not very comprehensively.
Quite a while ago we switched R for Windows to use the trio emulation
of *printf, which is intended to be compatible with C99. This was a
bug in a bugfix to trio (there have been quite a few bugfixes).
On Mon, 18 May 2009, Ei-ji Nakama wrote:
Hi
The result of Windows is clearly strange.
================ my Linux machine = good =======================
sessionInfo()
R version 2.9.0 (2009-04-17)
x86_64-pc-linux-gnu
locale:
LC_CTYPE=ja_JP.EUC-JP;LC_NUMERIC=C;LC_TIME=ja_JP.EUC-JP;LC_COLLATE=ja_JP.EUC-JP;
LC_MONETARY=C;LC_MESSAGES=ja_JP.EUC-JP;LC_PAPER=ja_JP.EUC-JP;LC_NAME=C;LC_ADDRES
S=C;LC_TELEPHONE=C;LC_MEASUREMENT=ja_JP.EUC-JP;LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
sprintf("%a",1:8)
[1] "0x1p+0" "0x1p+1" "0x1.8p+1" "0x1p+2" "0x1.4p+2" "0x1.8p+2" "0x1.cp+2"
[8] "0x1p+3"
================ my Windows machine = OMG ======================
sessionInfo()
R version 2.9.0 (2009-04-17)
i386-pc-mingw32
locale:
LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932
attached base packages:
[1] stats graphics grDevices utils datasets methods base
sprintf("%a",1:8)
[1] "0x1p+0" "0x1" "0x1.8"
"0x1p+4294967294"
[5] "0x1.4p+4294967294" "0x1.8p+4294967294" "0x1.cp+4294967294"
"0x1p+4294967293"
The result improved when I changed handling of uExponent as follows
http://prs.ism.ac.jp/~nakama/working/sprintf_format_a.patch
2009/5/18 Daniel Nordlund <djnordl...@verizon.net>:
-----Original Message-----
From: Ted Harding [mailto:ted.hard...@manchester.ac.uk]
Sent: Sunday, May 17, 2009 3:32 PM
To: Daniel Nordlund
Cc: r-h...@r-project.org
Subject: RE: [R] sprintf() question
On 17-May-09 22:03:19, Daniel Nordlund wrote:
When I type the following, I get results different from what I
expected.
sprintf('%a',3)
[1] "0x1.8"
Shouldn't the result be
[1] "0x1.8p+2"
Well, not "p+2" but "p+1"
(0x1.8 = 1.1000[2] ; *2 = 11.000[2] = 3[10]) ;
however, I get:
sprintf('%a',3)
# [1] "0x1.8p+1"
which is indeed correct.
R version 2.9.0 (2009-04-17) ## Same as yours
platform i486-pc-linux-gnu ## Different from yours ...
which perhaps suggests that there may be a mis-compilation in the
Windows version.
Ted.
I read through the help ?sprintf and didn't find anything
that changed
my expectation. What am I misunderstanding? I am using
R-2.9.0 binary
from CRAN on Windows XP Pro, and my session info is
sessionInfo()
R version 2.9.0 (2009-04-17)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets
methods base
Thanks for any enlightenment.
Thanks Ted!
Enlightenment is what I asked for, and it is what I got. I was having a
senior moment I guess. I was picturing 8 as binary 0100, when obviously it
is binary 1000. So yes, the required power of 2 is 1, and it is fine with
me that Windows implementation does not display it. Thanks again.
Dan
Daniel Nordlund
Bothell, WA USA
______________________________________________
r-h...@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.
--
EI-JI Nakama <nakama (a) ki.rim.or.jp>
"\u4e2d\u9593\u6804\u6cbb" <nakama (a) ki.rim.or.jp>
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Brian D. Ripley, rip...@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
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel