iphone – 取绝对值的CGFloat

iphone – 取绝对值的CGFloat,第1张

概述我怎样才能做到这一点?我试过abs(),但它只适用于int。有内置的方式这样做吗? CGFloat flo = -123;abs(flo) 这将返回0 使用fabs() CGFloat f = -123.4f;CGFloat g = fabs(f); CGFloat在64位机器上定义为双精度浮点,在32位机器上浮点。如果你同时定位64和32位比这个答案变得更复杂,但仍然是正确的。 您要使用fa 我怎样才能做到这一点?我试过abs(),但它只适用于int。有内置的方式这样做吗?

CGfloat flo = -123;abs(flo)

这将返回0

解决方法 使用fabs()

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

CGfloat在64位机器上定义为双精度浮点,在32位机器上浮点。如果你同时定位64和32位比这个答案变得更复杂,但仍然是正确的。

您要使用fabs(),因为它适用于大于float的double数据类型。在32位上,将fabs()(它是一个双精度型)的返回值赋给一个CGfloat(这是一个浮点数)只有在你使用CGfloat或float的绝对值时才是可行的。如果尝试存储大的双精度数的绝对值,则可能会溢出32位CGfloat。总之,64位是好的,在32位不要混合搭配双和CGfloat,你会没事的。

ABS()宏显然可能对一些编译器有副作用。

总结

以上是内存溢出为你收集整理的iphone – 取绝对值的CGFloat全部内容,希望文章能够帮你解决iphone – 取绝对值的CGFloat所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1087302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存