如何在C中表示科学记数法

use*_*508 6 c scientific-notation scientific-computing opencl

如何用一定数量的有效数字表示C中的极大或极小数字.例如,如果我想在1.54334E-34上进行计算,我该怎么做呢.此外,这适用于OpenCL代码吗?

mf_*_*mf_ 22

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);
Run Code Online (Sandbox Code Playgroud)


Kni*_*nug 5

我不知道任何OpenCL,但32位C浮点数将保持+/- 3.4e +/- 38(~7位数)范围内的值,并且会增加一倍.如果您想要任意精度算术/数学,您可能需要查看GMPMPFR.