java - 如何将 int 转换为 OpenCL 中的浮点数?
问题描述
我正在使用 OpenCL 在 Java 中编写 mandelbrot 分形渲染器。在我的内核代码中,我需要将一个int
转换为float
. 但是当我说printf("%d", sizeX, "\n%d", (float) sizeX, "\n\n");
( sizeX
is an int) 时,我在控制台中得到以下结果:
512
0
事实上,sizeX
应该是 512,但为了做进一步的计算,我需要它是一个浮点数。有人知道为什么当我尝试施放它时它总是变成 0 吗?
编辑:我也尝试通过做来转换它,float fSizeX = 0.0f + sizeX
但这也没有用。
解决方案
该代码不会产生给定的结果。输出将512
没有其他任何东西。
该printf()
方法(以及该format()
方法)只有一个“格式指定”参数。您可能想尝试这样的事情:
printf("%d\n%f\n\n", sizeX, (float) sizeX);
%d
格式说明符也会抛出一个InvaligArgumentException
非int
/Integer
值,所以我%f
改用了。
推荐阅读
- ruby - 如何找到 3 和 5 的倍数,推入一个数组,然后对数组求和
- excel - VBA - Excel 从不同位置的不同工作表中获取相同的数据
- php - PHP - 数组返回多个结果
- javascript - 游戏结束时停止 javascript
- php - SuiteCRM API 缺少“授权”标头
- javascript - 谷歌图表,如何在甘特图上添加自定义点?
- karate - 如何在空手道的嵌套级别上比较 json 对象
- oracle - 与在构建步骤中执行时相比,脚本在命令行中执行时的结果有何不同
- linux - Docker容器中的尾部:无法分配内存
- r - R 未来、doSNOW、并行和 foreach 用于异步执行