如何在OpenCL中将int转换为float?

时间:2019-04-11 11:12:50

标签: java casting int opencl

我正在使用OpenCL用Java编写mandelbrot分形渲染器。在我的内核代码中,我需要将int强制转换为float。但是当我说printf("%d", sizeX, "\n%d", (float) sizeX, "\n\n");sizeX是一个整数)时,我在控制台中得到以下结果:

512
0

确实,sizeX应该是512,但是为了进行进一步的计算,我需要将其作为浮点数。有人知道为什么我尝试投射时总是变成0吗?

编辑: 我也尝试通过进行float fSizeX = 0.0f + sizeX来进行转换,但这也没有用。

1 个答案:

答案 0 :(得分:3)

该代码不会产生给定的结果。输出为512,没有其他任何内容。

printf()方法(以及format()方法)也只有一个“格式指定”参数。您可能想要尝试这样的事情:

printf("%d\n%f\n\n", sizeX, (float) sizeX);

此外,%d格式说明符还将在非InvaligArgumentException / int值上抛出Integer,所以我改用%f