[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:29664] Re: long double について
-
From:matuda
-
Date:Sat, 4 Apr 2009 21:49:56 +0900 (JST)
- Subject: [plamo:29664] Re: long double について
- From: matuda <0131277601@xxxxxxxxxxxxxxx>
- Date: Sat, 04 Apr 2009 21:49:56 +0900
- User-agent: Thunderbird 2.0.0.19 (X11/20090103)
松田です.
すみません,全くの嘘情報を流してしまいました.-m128bit-long-double
は関係ありません.printf関数の使い方の間違いのせいでした.
#include <stdio.h>
int main()
{
long double ldx = 12.345678901234567890L, ldy;
printf("%.20Le\n%.20e\n%.20Le\n", ldx, ldx, ldx);
printf("%d\n", sizeof ldx);
ldy = ldx;
printf("%.20Le\n", ldy);
printf("%.20e\n", ldy);
printf("%.20Le\n", ldy);
return 0;
}
同一のprintf内で,異なる型の変換指定子を用いると以降同じ関数内の表示結果
がおかしくなる
というものでした.これは普通のdoubleでも起こるものです.
> 松田です.
>
> 表題通りlong doubleを表示するプログラムが旨くいきません.
> 以下のように最も単純なもの,
>
> #include <stdio.h>
>
> int main()
> {
>
> long doble ldx = 1.23L;
>
> printf("%Le", ldx);
>
> return 0;
> }
>
> でも,結果が変です.いろいろ調べていたら,次のコンパイルオプションをつけ
> ると正常に表示
> されることが分かりました.
>
> -m128bit-long-double
>
> この時,long double 変数は16bytesになります.デフォルトは
>
> -m96bit-long-double
>
> の12bytesだと思っていたのですが,gccを作るときにlong doubleを16bytes
> にすることができるのでしょうか?
>
>
> -------------------------------------------------------------------
> mmm mmm | matuda@xxxxxxxxxxxxxxxxxxx
> ((^_^)) <- -> | 松田七美男@東京電機大学 環境物質化学科 教授
> { } ({ }) | 〒101-8457 千代田区神田錦町2-2
> _I I_ _I_ | Tel:03(5280)3402 Fax:03(5280)3570
>
>
>
--
-------------------------------------------------------------------
mmm mmm | matuda@xxxxxxxxxxxxxxxxxxx
((^_^)) <- -> | 松田七美男@東京電機大学 環境物質化学科 教授
{ } ({ }) | 〒101-8457 千代田区神田錦町2-2
_I I_ _I_ | Tel:03(5280)3402 Fax:03(5280)3570
- References
-
- [plamo:29663] long double について, matuda
[検索ページ]
[メール一覧]
Plamo ML 公開システム