Article View: fj.lang.c
Article #401printf() で少数の表示規則
From: Tsuyoshi Moriya
Date: Tue, 07 Apr 1998 00:00
Date: Tue, 07 Apr 1998 00:00
43 lines
1514 bytes
1514 bytes
森谷@SCC札幌です。
double(float)をprintfで、表示する時の規則について疑問があります。
小数点以下をたとえば第2位まで表示するプログラムがあった場合、
printf時には、四捨五入されるというものではないのでしょうか?
以下のプログラムと結果は、HP-UX9.07でコンパイル実行しました。
(コンパイラは、cc、gccで行ってみましたが、同じ結果でした。)
この結果からは、規則性が見出せなかったのですが、
何か、変換規則みたいなものはあるのでしょうか?
よろしく、お願いいたします。
●ソース
void main(void)
{
double d;
int i;
(void)printf("VAL = %.2lf\n", (float)0.044);
(void)printf("VAL = %.2lf\n", (float)0.045);
(void)printf("VAL = %.2lf\n", 0.045);
(void)printf("VAL = %.2lf\n", 0.046);
d = (double)0.0;
for (i = 0; i < 45; i ++) {
d += (double)0.001;
}
(void)printf("VAL = %.2lf\n", d);
(void)printf("VAL = %lf\n", d);
}
●結果
VAL = 0.04
VAL = 0.05
VAL = 0.04
VAL = 0.05
VAL = 0.05
VAL = 0.045
Technical Details
Message-ID:
<6gd9q0$1ng$1@fu.bekkoame.or.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,e619927191a1ecb8,start X-Google-Attributes: gid106434,public From: moriya@ppp.bekkoame.or.jp (Tsuyoshi Moriya) Subject: printf() で少数の表示規則 Date: 1998/04/07 Message-ID: <6gd9q0$1ng$1@fu.bekkoame.or.jp> X-Deja-AN: 341695198 Content-Type: text/plain; charset=ISO-2022-JP Organization: BEKKOAME INTERNET INC. Mime-Version: 1.0 Newsgroups: fj.lang.c