directx - DirectCompute 着色器:如何摆脱警告 X3205: 'round'
问题描述
在计算着色器模型 5 中,我得到了双精度浮点值的一些计算结果。我必须将值分配给一个整数变量,然后我收到警告:
warning X3205: 'round': conversion from larger type to smaller, possible loss of data
我理解警告,但在我的情况下,在运行时浮点值永远不会超过整数可接受的值。该代码产生了预期的结果,所以我想关闭特定违规行的警告。
我没有找到如何关闭特定警告的方法,我喜欢编写不产生任何警告的代码,或者如果它们是,则检查它们是否是误报。
任何帮助表示赞赏。
解决方案
你没有提供你的代码,我想它的形式是:
double doubleValue = 1.0;
int integer = round(doubleValue);
如果您想抑制警告,并且您确定您正在处理的数据不会给出有趣的结果,您可以在将其传递double
给float
之前将其转换为 a round()
。
double doubleValue = 1.0;
int integer = round((float)doubleValue);
此表单不会触发警告。
推荐阅读
- python - python,尝试合并列表中的列表时,所有值都被破坏了
- laravel - 如何覆盖 Laravel Nova 中的删除确认模式
- android - Android使用socket.io将图像作为二进制流发送
- macos - 在 macOS 应用程序中使用 Safari 调试 JavaScriptCore
- botframework - Botbuilder,多个带有直接网络控制的网站。如何管理
- batch-file - 在现有命令提示符中触发命令。使用另一个 .bat 文件
- java - 从json发送日期字段时出现异常
- css - 使用 React Prod Build 重命名类名
- arrays - 如何对mongodb中的项目数组进行操作(过滤和排序)?
- python - 如何通过 SQLAlchemy 中的自定义函数进行排序