【问题标题】:Could not find an overload for '*' , Could not find an overload for '-'找不到“*”的重载,找不到“-”的重载
【发布时间】:2014-07-15 10:18:35
【问题描述】:

如何将此函数转换为 Swift

我收到很多错误 找不到“*”的重载 找不到“-”的重载

如何解决这个问题

float fixangle( float angle ){

    return angle - 360.0f * ( floor ( angle / 360.0f ) );

}

我也尝试这样,但这不起作用

func fixangle( angle: Float ) -> Float
{
    return angle - 360.0 * ( floor ( angle / 360.0 ) );
}

有关更多信息,您可以查看此屏幕短 Screen short here

【问题讨论】:

  • 这不是 Swift,而是 C
  • 是的,但是转换为目标 c 到 swift 所以
  • 你从哪里调用这个函数?请张贴您如何调用此功能的句子。我假设您在调用此函数时作为参数传递的变量是 Int 而不是 float。

标签: swift


【解决方案1】:

您的示例不在 Swift 中。这是等效的

func fixangle( angle: Float ) -> Float
{
    return angle - 360.0 * ( floor ( angle / 360.0 ) );
}

【讨论】:

  • 我在这篇文章之后尝试过这个问题,如果没有检查就不要给出答案
  • @jayeshkavathiya 我在操场上运行了该功能,它运行良好。你遇到了什么问题?
  • 这在操场上工作,但在 xcode swift 项目中不工作。这将给出错误“找不到'*'的重载”你可以检查
  • @jayeshkavathiya 它也适用于我的代码。您使用的是最新的开发者预览版吗?
  • @jayeshkavathiya - Jeremy 说得对。他的答案编译得很好,没有任何问题。问题出在你身上。
【解决方案2】:

你基本上需要一个浮点数的余数这个怎么样?

func fixangle(angle: Float) -> Float {
    let aval = angle % 360.0
    return aval
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 2011-12-24
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多