我需要将float
的小数部分与整数部分分开。在C中,我可以使用modf
来实现这一点。当我尝试在Metal Shading Language中使用相同的函数时,它会返回以下错误:
调用"modf"没有匹配函数
修复metal_math
按下";固定在metal_ math中";只会在metal_math文件中引发更多问题。有没有什么方法可以让我使用modf
或其他方法来获得金属着色语言中的小数部分。这是我迄今为止使用金属着色语言编写的代码。
float f = <some float of undetermined precision>;
float decimal;
modf(f, &decimal);
您应该通过引用而不是地址传递值。将您的代码替换为:
modf(f, decimal);