ページ 1 / 1
桁のでかい場合のprintfの限界
Posted: 2016年4月01日(金) 18:32
by jun3453
桁がでかい計算をC言語でやろうと思い、
コード:
int main(){
double a = 123456789012345678901234567890.0;
printf("%f\n",a);
return 0;
}
のようなコードを書いてコンパイルしてみると、
123456789012345680000000000000.000000
のような値が表示されていました。
17桁目から繰り上がりされているようですが、これはdouble型の仕様なのでしょうか?
Re: 桁のでかい場合のprintfの限界
Posted: 2016年4月01日(金) 20:02
by みけCAT
C言語のdouble型の仕様では詳しい精度は決まっていなかったはずなので、
64ビットのIEEE754または実行している環境での浮動小数点数の仕様だと思います。
オフトピック
jun3453 さんが書きました:のようなコード
実際のコードでは、利用する関数はきちんと利用する前に宣言(宣言を含むヘッダのインクルードを含む)しましょう。
Re: 桁のでかい場合のprintfの限界
Posted: 2016年4月02日(土) 19:01
by jun3453
みけCATさんありがとうございます。
インクルードコピーしてませんでした!すみません;;
この現象は環境による仕様なのですね~。
またよろしくお願いします!