3
%gを使用できるprintf関数には、floatが3.00の場合は整数を表示し、3.01
実際にfloatであるかどうかを表示する関数がありますが、コードを使用してこれを実行する方法はありますか?
質問する
11466 次
1 に答える
8
本当に簡単な答えはありません
積分値は、floatおよびdouble形式で正確に表現されます。したがって、それが本当にすでに不可欠である場合は、次を使用できます。
f == floor(f)
ただし、値が、ある時点でゼロ以外の小数部分を含む計算の結果である場合は、整数に非常に近いものがある可能性があるが、実際にはそうではないことを心配する必要があります。 、最後まで同じ。あなたはおそらくそれが不可欠であると考えたいでしょう。
これを行う1つの方法:
fabs(f - round(f)) < 0.000001
そして、私たちが主題に取り組んでいる間、純粋主義者にとって、またははFPUモードに従って丸められるのに対し、round(3)はゼロから半分のケースを丸めることに注意するint i = f;
必要があります。double i = f;
于 2013-03-09T17:40:59.500 に答える