Cで非常に大きい数または小さい数を、一定量の有効数字で表すにはどうすればよいですか。たとえば、1.54334E-34で計算を実行したい場合、どうすればこれを実行できますか。また、これはOpenCLコードに適用できますか?
OpenCLはわかりませんが、32ビットCフロートは +/- 3.4e +/- 38(〜7桁) の範囲の値を保持し、さらに2倍になります。任意精度の算術/数学が必要な場合は、 [〜#〜] gmp [〜#〜] または [〜#〜] mpfr [〜#〜] を調べることをお勧めします。 =。
float var = 1.54334E-34;
double var2 = 1.54334E-34;
printf("\n normal:%f\n sci:%e \n or \n sci:%E \n",var,var,var);
printf("\n normal:%f\n sci:%e \n or \n sci:%E \n",var2,var2* 1.0E3 ,var2 * 1.0e3);