12

一定量の有効数字を使用して、C で非常に大きな数または小さな数を表すにはどうすればよいですか。たとえば、1.54334E-34 を計算したい場合、どうすればよいでしょうか。また、これは OpenCL コードに適用できますか?

4

2 に答える 2

29
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);
于 2013-06-03T21:25:47.033 に答える
8

OpenCL についてはわかりませんが、32 ビット C 浮動小数点数は+/- 3.4e +/- 38 (~7 桁)の範囲の値を保持し、さらに 2 倍になります。任意精度の演算/数学が必要な場合は、GMPまたはMPFRを調べてください。

于 2013-06-03T21:23:07.263 に答える