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

How to cast an int to a float in OpenCL?

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

512
0

确实,sizeX应该是512,但是为了做进一步的计算,我需要它是一个浮点数。有人知道为什么当我尝试施放它时它总是变成 0 吗?

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

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

printf() 方法(以及 format() 方法)只有一个 "format specifying" 参数。你可能想尝试这样的事情:

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

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