https://atcoder.jp/contests/typical90/tasks/typical90_alの競プロの問題を解くため、https://atcoder.jp/contests/typical90/custom_testの環境(c++, clang10.0.0)でコードテストをしたところ1000000000000000233.000000と出力されるはずが、1000000000000000256.000000と出力された。
c++
1#include <iostream> 2#include <numeric> 3#include <functional> 4 5using namespace std; 6 7 8int main(){ 9 double maxmax= 1000000000000000000.0; 10 double lcm = maxmax+233.0; 11 printf("%lf\n", lcm); 12 return 0; 13}
なにが起きてるんでしょうか?差分の22はどこからきたんでしょうか?doubleの範囲内での計算なはずなのに、なぜ256という2進数になるんでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。