草庐IT

iphone - 取 CGFloat 的绝对值

coder 2023-07-24 原文

我该怎么做?我试过 abs() 但它只适用于整数。有内置的方法吗?

CGFloat flo = -123;
abs(flo)

返回 0

最佳答案

使用 fabs()

CGFloat f = -123.4f;
CGFloat g = fabs(f);

CGFloat 在 64 位机器上定义为 double,在 32 位机器上定义为 float。如果您同时针对 64 位和 32 位,那么这个答案会变得更复杂,但仍然是正确的。

您想使用 fabs(),因为它适用于大于 floatdouble 数据类型。在 32 位上,将 fabs() 的返回值(它是一个 double)分配给一个 CGFloat(它是一个 float) 仅当您采用 CGFloatfloat 的绝对值时才可以。如果您尝试存储较大的 double 数字的绝对值,您可能会溢出 32 位 CGFloat。简而言之,64 位就可以了,在 32 位上不要混用 doubleCGFloat 就可以了。

ABS() 宏显然会对某些编译器产生副作用。

关于iphone - 取 CGFloat 的绝对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14349874/

有关iphone - 取 CGFloat 的绝对值的更多相关文章

  1. ruby - 如何找到当前运行的 Ruby 脚本的绝对路径? - 2

    我有一个Ruby脚本,它想要确定它的绝对路径,以便找到一些相对于脚本存储的数据文件。最简单/最好的方法是什么? 最佳答案 这可以简单地使用:File.expand_path$0 关于ruby-如何找到当前运行的Ruby脚本的绝对路径?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7802630/

  2. ruby - 如何在 Ruby 中构建可移植的绝对路径? - 2

    让我们假设一个脚本需要访问一个目录,比如在“任意”操作系统上的/some/where/abc。在Ruby中构建路径有几个选项:File.join('','some','where','abc')File.absolute_path("some#{File::SEPARATOR}where#{File::SEPARATOR}abc",File::SEPARATOR)标准API中的路径名我相信第一个解决方案足够清晰,但符合惯用语。根据我的经验,一些代码审查会要求评论来解释它的作用......问题有没有更好的方法来构建绝对路径是Ruby,其中更好的意思是“完成工作并为自己说话”?

  3. iphone - 扩展 restful_authentication/AuthLogic 以支持匿名 iPhone 的延迟登录的最佳方法是什么? - 2

    我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符

  4. 绝对详细的 RabbitMQ 实践操作手册(一) - 2

    绝对详细的RabbitMQ实践操作手册,看完本系列就够了。一、什么是MQ?1、MQ的概念2、理解消息队列二、MQ的优势和劣势1、优势和作用2、劣势三、MQ的应用场景四、AMQP五、工作原理一、什么是MQ?1、MQ的概念MQ全称MessageQueue(消息队列),是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信。下面用图来理解异步通信,并阐明与同步通信的区别。同步通信:甲乙两人面对面交流,你一句我一句必须同步进行,两人除此之外不做任何事情异步通信:异步通信相当于通过第三方转述对话,可能有消息的延迟,但不需要二人时刻保持联系,消息传给第三方后,两人可以做其他自己想做的事情,当需要获取

  5. ruby - 如何让 Ruby Dir#glob 返回基本名称,而不是绝对路径? - 2

    FakeProfilePictures::Photo.all_large_names_2x(定义如下)返回绝对路径名数组,但是当我执行Dir["picture_*@2x.*"]从irb中的正确目录,我只得到基本名称(我想要的)。获取基本名称的最佳方法是什么?我知道我可以通过添加.map{|f|来做到这一点File.basename(f)}如评论中所示,但是否有更简单的/better/faster/stronger怎么办?moduleFakeProfilePicturesclassPhotoDIR=File.expand_path(File.join(File.dirname(__FIL

  6. ruby - 如何将 Mechanize 中的相对链接转换为绝对链接? - 2

    有没有一种方法可以将Mechanize相对链接对象转换为另一个包含绝对URL的对象。Mechanize必须知道绝对链接,因为我也可以在相对链接上调用click方法。 最佳答案 您可以将页面uri(始终是绝对的)与链接uri合并:page.uri.mergelink.uri 关于ruby-如何将Mechanize中的相对链接转换为绝对链接?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  7. ruby 数组键对值? - 2

    我正在尝试配对两个键值对,但我不确定如何完成此操作。以下是我的尝试:struc=Array[(3,4),(5,6)]foriin0..1puts"#{struc[i,i]}"end但我想要的输出如下(前面的代码块不会产生):3456 最佳答案 为什么不使用散列。有了它,您可以:struc={3=>4,5=>6}要输出结果,可以使用each_pair方法,如下所示:struc.each_pairdo|key,value|puts"#{key}#{value}"end 关于ruby数组键对值

  8. iphone - 设计和 Rails 3 中的 http 身份验证 - 2

    我有一个使用deviseonrails3的应用程序。我想启用http身份验证,以便我可以从iPhone应用程序向我的网络应用程序进行身份验证。如何从我的iPhone应用程序进行身份验证以进行设计?这安全吗?还是我应该进行不同的身份验证? 最佳答案 从设计的角度来看,您有3个选择:1)使用基本的http身份验证:您的iPhone应用程序有一个secretkey-这是在您的iPhone应用程序代码中烘焙的-用于对网络应用程序的每个请求进行身份验证。Google搜索:“设计基本的http身份验证”2)您可以通过在您的iPhone应用程序中

  9. ruby - 一种在保持绝对路径的同时解析相对路径的 Ruby 方法? - 2

    我正在编写一个跨平台(MacOSX、Linux、Windows)的rakebuildscrip。构建脚本将被CIserver使用.我希望我的脚本逻辑如下:如果确定路径是相对路径,则通过output_path=FOO_HOME+user_supplied_relative_path使其成为绝对路径如果确定路径是绝对路径,则按原样我目前正在使用Pathname.new(location).absolute?但它在Windows上无法正常工作。为此您建议采用哪种方法? 最佳答案 require'pathname'(Pathname.new

  10. iphone - 在没有 Mac 的情况下开发 iPhone 应用程序? - 2

    这个问题在这里已经有了答案:关闭13年前。PossibleDuplicates:HowcanIdevelopforiPhoneusingaWindowsdevelopmentmachine?我想为我妻子的手机构建一个iPhone应用程序,但我对购买Mac作为一次性工作的开发平台不感兴趣。应用程序:应该在iPhone上独立运行(即没有网络连接)完全可以接受使用iPhoneJavascript库之一创建的GUI会做一些数据库IO来读取和更新数据没有商业值(value),永远不会被任何人使用这是我的想法:越狱iPhone在iPhone上安装Ruby+Sinatra使用Sinatra编写应用程

随机推荐