【发布时间】:2013-05-30 03:35:47
【问题描述】:
如何用一定数量的有效数字表示 C 中极大或极小的数字。例如,如果我想对 1.54334E-34 进行计算,我该怎么做。另外,这是否适用于 OpenCL 代码?
【问题讨论】:
标签: c opencl scientific-computing scientific-notation
如何用一定数量的有效数字表示 C 中极大或极小的数字。例如,如果我想对 1.54334E-34 进行计算,我该怎么做。另外,这是否适用于 OpenCL 代码?
【问题讨论】:
标签: c opencl scientific-computing scientific-notation
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);
【讨论】:
我不知道任何 OpenCL,但 32 位 C 浮点数将保持 +/- 3.4e +/- 38 (~7 digits) 范围内的值,并且翻倍更多。如果您想要任意精度的算术/数学,您可能需要查看GMP 或MPFR。
【讨论】: