大小の数字を処理したい場合、Cの値をどのように合計/比較する必要がありますか?
#include <stdio.h>
#include <math.h>
int main(void) {
if (1.0 + (1/pow (10,50)) == 1.0)
printf("true");
else
printf("false");
return 0;
}
falseを返すようにする方法は?
大小の数字を処理したい場合、Cの値をどのように合計/比較する必要がありますか?
#include <stdio.h>
#include <math.h>
int main(void) {
if (1.0 + (1/pow (10,50)) == 1.0)
printf("true");
else
printf("false");
return 0;
}
falseを返すようにする方法は?
標準のCタイプではfalseを返すようにすることはできません。高精度の浮動小数点ライブラリを使用する必要があります。
C99では、最高の精度はですlong double
。これは、最新のCコンパイラ/アーキテクチャのほとんどで64ビットまたは128ビットのIEEE浮動小数点数です。より正確なものが必要な場合は、たとえばGCCで使用されるいくつかのライブラリの使用を検討してください。
GMP(http://gmplib.org/)-整数と浮動小数点数の両方の任意精度演算。MPFR(http://www.mpfr.org/)-多倍長浮動小数点ライブラリ(正しく丸めると主張)MPC(http://www.multiprecision.org/index.php?prog=mpc)任意精度複素数番号ライブラリ。