From: WATANABE Hirofumi Date: 2002-09-10T12:21:10+09:00 Subject: [ruby-dev:18246] Re: missing/vsnprintf.c: printf("%+f", -0.0) わたなべです。 英語だと面倒なので、ruby-devへ持ってきました。 GOTO Kentaro writes: > [1 ] > printf("%+f", -0.0) prints "+0.0000000" if missing/vsnprintf.c is used. ここでちょっとひっかかるんですが、missing/vsnprintf.cでは /* #define FLOATING_POINT */ となっていてdefaultの状態では%fすらサポートされません。 #ということに今気づいた。 なので"f"という表示になるはずなんですが、どこかでdefineして るんでしょうか? > Could you anyone test this patch and commit? I don't know what platforms > need this code. FLOATING_POINTをdefineしてもBSD__dtoaがundefined referenceになります。 つまりどこかからBSD__dtoaを取ってこない限り、BSDじゃないとテ ストできない…。 それはそれとしてmsvcrtでテストしてみると、同じバグがあるようです。 % setopt bsd_echo % echo 'main(){printf("%+f\n", -0.0);}' >foo.c % gcc foo.c % ./a -0.000000 % gcc -mno-cygwin foo.c % ./a +0.000000 -- わたなべひろふみ