首页 > 解决方案 > 如何将 int 转换为 OpenCL 中的浮点数?

问题描述

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

512
0

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

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

标签: javacastingintopencl

解决方案


该代码不会产生给定的结果。输出将512没有其他任何东西。

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

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

%d格式说明符也会抛出一个InvaligArgumentExceptionint/Integer值,所以我%f改用了。


推荐阅读